Android SQLite使用注意点

Android SQLite使用注意点。

  1. SQLiteDatabase db对象,在写入数据时要先执行
db.beginTransaction();

如果要commit,则执行

db.setTransactionSuccessful();
db.endTransaction();

如果要rollback,则执行

db.endTransaction();

完了之后要关闭数据库

db.close();

特别注意的是这两句

db.endTransaction();
db.close();

不管写入成功还是失败都是要执行的,不然会报错数据库is locked

示例写法

SoftwareHelper softwareHelper = new SoftwareHelper(getApplicationContext());
SQLiteDatabase db = softwareHelper.getWritableDatabase();
try{
    db.beginTransaction();

    ContentValues contentValues = new ContentValues();
    contentValues.put("id", 3);
    contentValues.put("name", "米乐");
    contentValues.put("package_name", "douyins");
    contentValues.put("is_enable", 1);
    contentValues.put("version", "1.0.1");
    db.insertOrThrow(softwareHelper.TABLE_NAME, null, contentValues);

    db.setTransactionSuccessful();
    db.endTransaction();

    db.close();
    Log.d("info", "data write ok");
}catch (Exception e){
    Log.d("EXCEPTION", e.getMessage());
}finally {
    db.endTransaction();
    db.close();
}

Leave a Comment

豫ICP备19001387号-1