Android 關於SQLite事務

2021-07-11 04:33:44 字數 940 閱讀 6567

應用程式初始化有可能需要批量的向

sqlite

中插入大量資料,單獨的使用

迴圈插入的

方法會導致應用響應緩慢,因為

sqlite

插入資料的時候預設一條語句就是乙個事務,有多少條資料就有多少次磁碟操作。我的應用初始

5000

條記錄也就是要

5000

次讀寫磁碟操作。

那我們就可以新增事務處理,把

5000

條插入作為乙個事務。 使用

sqlitedatabase

的begintransaction()

方法可以開啟乙個事務,程式執行到

endtransaction()

方法時會檢查事務的標誌是否為成功,如果程式執行到

endtransaction()

之前呼叫了

settransactionsuccessful()

方法設定事務的標誌為成功,則所有從

begintransaction

()開始的操作都會被提交,如果沒有呼叫

settransactionsuccessful() 

方法則回滾事務。

關於事務回滾:

事務是資料庫更新操作的基本單位,事務回滾是指將該事務已經完成的對資料庫的更新操作撤銷。

所謂事務是使用者定義的乙個資料庫操作序列,這些操作要麼全做要麼全不做,是乙個不可分割的工作單位。例如,在關聯式資料庫中,乙個事務可以是一條sql語句、一組sql語句或整個程式。 簡單舉個例子就是你要同時修改資料庫中兩個不同表的時候,如果它們不是乙個事務的話,當第乙個表修改完,可能第二個表修改過程中出現了異常而沒能修改的情況下,就只有第二個表回到未修改之前的狀態,而第乙個表已經被修改完畢。而當你把它們設定為乙個事務的時候,當第乙個表修改完,可是第二表改修出現了異常而沒能修改的情況下,第乙個表和第二個表都要回到未修改的狀態!這就是所謂的事務回滾。

android關於多執行緒操作sqlite知識點

1.關於getwriteabledatabase 和getreadabledatabase 的真正作用 getwriteabledatabase 其實是相當於getreadabledatabase 的乙個子方法,getwriteabledatabase 是只能返回乙個以讀寫方式開啟的sqliteda...

關於SQLite在Android開發中的知識點總結

一 存放位置 二 資料庫大小 1.sqlite可以存放比較大的資料,10多m算是小case了 三 多資料庫 1.對於多資料庫存放在sdcard中,可以寫個多資料庫操作的框架來處理 四 加密解密 1.對資料庫檔案加密 在 2.對資料庫內的內容加密解密 五 sqlite操作 1.關鍵字 2.特殊語法 3...

關於SQLite在Android開發中的知識點總結

一 存放位置 二 資料庫大小 1.sqlite可以存放比較大的資料,10多m算是小case了 三 多資料庫 1.對於多資料庫存放在sdcard中,可以寫個多資料庫操作的框架來處理 四 加密解密 1.對資料庫檔案加密 在 2.對資料庫內的內容加密解密 五 sqlite操作 1.關鍵字 2.特殊語法 3...