android SQLiteDatabase

来源:互联网 发布:淘宝女装店铺介绍模板 编辑:程序博客网 时间:2024/06/05 03:12
转载地址:http://blog.sina.com.cn/s/blog_6fff321b0100onw8.html

SQLiteDatabase

[功能]

SQLiteDatabase 是关于数据库操作的 可用于 insert delete update query等操作可惜美中不足的是:

1. 其不支持创建数据库

2. 其不支持版本更新 或者说其不知道如何做 因为具体数据的差异

鉴于以上的缺陷 有一个辅助类可以完成上面功能 那就是:SQLiteOpenHelper

[代码]

1. 定义SQLiteOpenHelper 并完成 创建 更新 功能

  1. publicclassDBHelper extendsSQLiteOpenHelper { 
  2. publicstaticfinalString TB_NAME = "mycountry"
  3. publicstaticfinalString ID = "_id"
  4. publicstaticfinalString COUNTRY = "country"
  5. publicstaticfinalString CODE = "code"
  6. publicDBHelper(Context context, String name, 
  7. CursorFactory factory,intversion) { 
  8. super(context, name, factory, version); 
  9. publicvoidonCreate(SQLiteDatabase db) { 
  10. db.execSQL("CREATE TABLE IF NOT EXISTS "
  11. + TB_NAME + ("
  12. + ID + INTEGER PRIMARY KEY,"
  13. + COUNTRY + VARCHAR,"
  14. + CODE + INTEGER)"); 
  15. publicvoidonUpgrade(SQLiteDatabase db, 
  16. intoldVersion, intnewVersion) { 
  17. //TODO删除数据库之前 做数据备份
  18. db.execSQL("DROP TABLE IF EXISTS "+TB_NAME); 
  19. onCreate(db); 

2. 从SQLiteOpenHelper 得到SQLiteDatabase的实例

  1. DBHelper helper = newDBHelper(this, DB_NAME, null, VERSION); 
  2. SQLiteDatabase db = helper.getWritableDatabase(); 

3. SQLiteDatabase 的一些操作:

* 插入数据:

  1. ContentValues values = newContentValues(); 
  2. values.put(DBHelper.COUNTRY, "中国"); 
  3. values.put(DBHelper.CODE, 86); 
  4. db.insert(DBHelper.TB_NAME,DBHelper.ID, values); 

* 改动数据

  1. db.insert(DBHelper.TB_NAME,DBHelper.ID,null); 
  2. values.clear(); 
  3. values.put(DBHelper.COUNTRY, "意大利"); 
  4. values.put(DBHelper.CODE, 39); 
  5. db.update(DBHelper.TB_NAME, values,DBHelper.ID + 2",null); 

* execSQL 执行SQL语言

  1. db.execSQL("INSERT INTO "
  2. + DBHelper.TB_NAME + "("
  3. + DBHelper.COUNTRY + ","
  4. + DBHelper.CODE + ") VALUES "
  5. "('洪都拉斯',504)"); 

* 查询数据

  1. Cursor c = db.query(DBHelper.TB_NAME,null,null,null,null,null
  2. DBHelper.CODE+DESC"); 

* 删除数据所有数据

  1. db.delete(DBHelper.TB_NAME,null,null); 

数据库的生成 调用 getWiterAbleDatabase getReadAbleDatabase生成数据库i

android 嵌入式数据库 为单用户数据库 所以 可以不调用db.close()来关闭数据库这样反而可以提高性能

0 0
原创粉丝点击