應用程式初始化有可能需要批量的向
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...