我們在開發資料庫應用的過程中,對錶的結構有時候會有變化,特別是有時候增加了一些表,或者是增加了一些列。在除錯時就會產生一些問題。
比如原來有乙個表tablea。
在開發過程中增加了另外乙個表tableb.並相應增加了訪問了的**。
private static class databasehelper extends sqliteopenhelper
@override
public void oncreate(sqlitedatabase db)
}如果資料庫已經建立,這時候對tableb進行訪問會有exception產生,原因是oncreate只在第一次建立資料庫時執行,如果資料庫已經建立好了,則不會執行,所以我們訪問的b表是不存在的。
遇到這種情況,以前我都是通過檔案系統,把資料庫檔案刪除。然後再執行就沒有問題 了。可是這樣做的缺點是特別麻煩,充分利用onupgrade則可以輕鬆的達到資料庫更新的目的。
**如下
@override
public void onupgrade(sqlitedatabase db, int oldversion, int newversion)
onupgrade在資料庫版本變化時執行到,所以只要改一下版本號,就會強制使資料庫變化到最新的設計。
當然, 在你的應用發布時,別忘了恢復成你想要的版本。而且更要記得的是,如果在兩次發布之間,資料庫的結構有變化,也要變更版本號。
Android 中 SQLite 效能優化
sqlite效能的優化,在此記錄。乙個比較全面的sqlite資料庫講解 具體用法看上面的部落格。優點 加快了查操作 缺點 降低了增刪改操作的速度,增加了空間消耗,建立索引過程耗時。基於以上特點,具體情況判斷是否建立索引。sqlite想要執行操作,需要將程式中的sql語句編譯成對應的sqlitesta...
Android中SQLite操作示例
android中sqlite操作示例 在android中對sqlite資料庫的操作,涉及以下幾個方面 1 確認資料庫檔案,即.db檔案 2 通過android.database.sqlite.sqlitedatabase類的openorcreatedatabase 方法開啟資料庫 3 資料庫操作 a...
Android中SQLite版本公升級
size large android中sqlite版本公升級 網上有很多文章,但是感覺寫的都不是很明白 前提 定義dbopenhelper類繼承sqliteopenhelper 重寫oncreate和onupgrade方法 ondowngrade是降級的方法,應該不會用到 定義兩個屬性 資料庫名稱,...