public abstract void onupgrade(sqlitedatabase db,int oldversion,int new version)
這個方法在實現時需要重寫。
onupgrade方法會在資料庫需要公升級的時候呼叫。可以用來增刪表或者其他任何操作。如果你想新增新的列你可以使用alter table 插入表中。如果需要重新命名或者刪掉列,可以使用alter table 重新命名舊表,然後建立新的表,並將舊表資料新增到新錶中。如果丟擲異常,將自動回滾。
1. 幫助文件裡說的「資料庫公升級」是指什麼?
你開發了乙個程式,當前是1.0版本。該程式用到了資料庫。到1.1版本時,你在資料庫的某個表中增加了乙個字段。那麼軟體1.0版本用的資料庫在軟體1.1版本就要被公升級了。
2. 資料庫公升級應該注意什麼?
軟體的1.0版本公升級到1.1版本時,老的資料不能丟。那麼在1.1版本的程式中就要有地方能夠檢測出來新的軟體版本與老的資料庫不相容,並且能夠有辦法把1.0軟體的資料庫公升級到1.1軟體能夠使用的資料庫。換句話說,要在1.0軟體的資料庫的那個表中增加那個字段,並賦予這個字段預設值。
3. 程式如何知道資料庫需要公升級?
sqliteopenhelper類的建構函式有乙個引數是int version,它的意思就是指資料庫版本號。比如在軟體1.0版本中,我們使用sqliteopenhelper訪問資料庫時,該引數為1,那麼資料庫版本號1就會寫在我們的資料庫中。
到了1.1版本,我們的資料庫需要發生變化,那麼我們1.1版本的程式中就要使用乙個大於1的整數來構造sqliteopenhelper類,用於訪問新的資料庫,比如2。
當我們的1.1新程式讀取1.0版本的老資料庫時,就發現老資料庫裡儲存的資料庫版本是1,而我們新程式訪問它時填的版本號為2,系統就知道資料庫需要公升級。
4. 何時觸發資料庫公升級?如何公升級?
當系統在構造sqliteopenhelper類的物件時,如果發現版本號不一樣,就會自動呼叫onupgrade函式,讓你在這裡對資料庫進行公升級。根據上述場景,在這個函式中把老版本資料庫的相應表中增加字段,並給每條記錄增加預設值即可。
新版本號和老版本號都會作為onupgrade函式的引數傳進來,便於開發者知道資料庫應該從哪個版本公升級到哪個版本。
公升級完成後,資料庫會自動儲存最新的版本號為當前資料庫版本號。
android之資料儲存之SQLite
sqlite開源輕量級資料庫,支援92 sql標準,主要用於嵌入式系統,只佔幾百k系統資源此外,sqlite 不支援一些標準的 sql 功能,特別是外來鍵約束 foreign key constrains 巢狀 transcaction 和 right outer join 和 full outer...
Android 資料儲存之SQLite
android在執行時整合了sqlite 所以每個android應用程式都可以使用sqlite資料庫。我們通過sqlitedatabase這個類的物件操作sqlite資料庫,而且不需要身份驗證。資料庫存放的位置 data data 專案資料夾 databases 檢視資料庫 例項 public cl...
Android資料庫之SQLite
在android作業系統中使用的是sqlite資料庫,我們借助sqliteopenhelper這個sqlitedatabase的工具類來建立資料庫。首先我們需要建立乙個 sqliteopenhelper的子類 class databasehelper extends sqliteopenhelper...