SQLiteDatabase
[功能]
SQLiteDatabase 是关于数据库操作的 可用于 insert delete update query等操作可惜美中不足的是:
1. 其不支持创建数据库
2. 其不支持版本更新 或者说其不知道如何做 因为具体数据的差异
鉴于以上的缺陷 有一个辅助类可以完成上面功能 那就是:SQLiteOpenHelper
[代码]
1. 定义SQLiteOpenHelper 并完成 创建 更新 功能
- publicclassDBHelper extendsSQLiteOpenHelper {
- publicstaticfinalString TB_NAME = "mycountry";
- publicstaticfinalString ID = "_id";
- publicstaticfinalString COUNTRY = "country";
- publicstaticfinalString CODE = "code";
- publicDBHelper(Context context, String name,
- CursorFactory factory,intversion) {
- super(context, name, factory, version);
- }
- publicvoidonCreate(SQLiteDatabase db) {
- db.execSQL("CREATE
TABLE IF NOT EXISTS " - + TB_NAME + "
(" - + ID + "
INTEGER PRIMARY KEY," - + COUNTRY + "
VARCHAR," - + CODE + "
INTEGER)"); - }
- publicvoidonUpgrade(SQLiteDatabase db,
- intoldVersion, intnewVersion) {
- //TODO删除数据库之前 做数据备份
- db.execSQL("DROP
TABLE IF EXISTS "+TB_NAME); - onCreate(db);
- }
- }
2. 从SQLiteOpenHelper 得到SQLiteDatabase的实例
- DBHelper helper = newDBHelper(this, DB_NAME, null, VERSION);
- SQLiteDatabase db = helper.getWritableDatabase();
3. SQLiteDatabase 的一些操作:
* 插入数据:
- ContentValues values = newContentValues();
- values.put(DBHelper.COUNTRY, "中国");
- values.put(DBHelper.CODE, 86);
- db.insert(DBHelper.TB_NAME,DBHelper.ID, values);
* 改动数据
- db.insert(DBHelper.TB_NAME,DBHelper.ID,null);
- values.clear();
- values.put(DBHelper.COUNTRY, "意大利");
- values.put(DBHelper.CODE, 39);
- db.update(DBHelper.TB_NAME, values,DBHelper.ID + "
= 2",null);
* execSQL 执行SQL语言
- db.execSQL("INSERT
INTO " - + DBHelper.TB_NAME + "("
- + DBHelper.COUNTRY + ","
- + DBHelper.CODE + ")
VALUES " - + "('洪都拉斯',504)");
* 查询数据
- Cursor c = db.query(DBHelper.TB_NAME,null,null,null,null,null,
- DBHelper.CODE+"
DESC");
* 删除数据所有数据
- db.delete(DBHelper.TB_NAME,null,null);
数据库的生成 调用 getWiterAbleDatabase getReadAbleDatabase生成数据库i
android 嵌入式数据库 为单用户数据库 所以 可以不调用db.close()来关闭数据库这样反而可以提高性能