[Android] Android sqlite事務

Android開發中的SQLite事務處理,即beginTransaction()方法…java

使用SQLiteDatabase的beginTransaction()方法能夠開啓一個事務,程序執行到endTransaction() 方法時會檢查事務的標誌是否爲成功,若是程序執行到endTransaction()以前調用了setTransactionSuccessful() 方法設置事務的標誌爲成功則提交事務,若是沒有調用setTransactionSuccessful() 方法則回滾事務。事務處理應用:不少時候咱們須要批量的向Sqlite中插入大量數據時,單獨的使用添加方法致使應用響應緩慢, 由於sqlite插入數據的時候默認一條語句就是一個事務,有多少條數據就有多少次磁盤操做。如初始8000條記錄也就是要8000次讀寫磁盤操做。同時也是爲了保證數據的一致性,避免出現數據缺失等狀況。sql

SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
//開啓事務
db.beginTransaction();
try{
            //批量處理操做
            //do something
           db.execSQL(「SQL語句」, new Object[]{});
           db.execSQL(「SQL語句」, new Object[]{});
            //設置事務標誌爲成功,當結束事務時就會提交事務
            db.setTransactionSuccessful();
}
catch(Exception e){
}
finally{
           //結束事務
          db.endTransaction();
}
相關文章
相關標籤/搜索