如果在安卓開發中,直接使用Activity中的openOrCreateDatabase(name, mode, factory)會有一系列跟隨的問題。比如說數據庫升級、更新等。
最好是使用其封裝版本:SQLiteOpenHelper
繼承和擴展SQLiteOpenHelper類主要做的工作就是重寫以下兩個 方法。
onCreate(SQLiteDatabase db) : 當數據庫被首次創建時執行該方法,一般將創建表等初始化操作在該方法中執行。
onUpgrade(SQLiteDatabse dv, int oldVersion,int new Version):當打開數據庫時傳入的版本號與當前的版本號不同時會調用該方法。
除了上述兩個必須要實現的方法外,還可以選擇性地實現onOpen 方法,該方法會在每次打開數據庫時被調用。
自己在業務中重寫這些函數,然後通過helper的getWritableDatabase和getReadableDatabase來得到想要操作的數據庫。再進行操作就可以了。
--------------------------------
另外,判斷一個表在sqlite中是否存在,可以使用如下方法:
String sql = "SELECT count(*) FROM sqlite_master WHERE type='table' AND name='items'";
Cursor cur = db.rawQuery(sql, null);
int count = -1;
while (cur.moveToNext()) {
count = cur.getInt(0);
}
if (count <= 0) {
// 表不存在
} else {
}