使用SQLiteDatabase的beginTransaction()方法能夠開啓一個事務,程序執行到endTransaction() 方法時會檢查事務的標誌是否爲成功,若是程序執行到endTransaction()以前調用了setTransactionSuccessful() 方法設置事務的標誌爲成功則提交事務,若是沒有調用setTransactionSuccessful() 方法則回滾事務。事務處理應用:不少時候咱們須要批量的向Sqlite中插入大量數據時,單獨的使用添加方法致使應用響應緩慢, 由於sqlite插入數據的時候默認一條語句就是一個事務,有多少條數據就有多少次磁盤操做。如初始8000條記錄也就是要8000次讀寫磁盤操做。同時也是爲了保證數據的一致性,避免出現數據缺失等狀況。sql
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();spa
//開啓事務sqlite
db.beginTransaction();事務
try{get
//批量處理操做it
//do somethingio
db.execSQL("SQL語句", new Object[]{});table
db.execSQL("SQL語句", new Object[]{});程序
//設置事務標誌爲成功,當結束事務時就會提交事務方法
db.setTransactionSuccessful();
}
catch(Exception e){
}
finally{
//結束事務
db.endTransaction();
}