我正在製作一個數據庫應用程序,並且我的程序能夠正常工作,並且我已經瞭解了我一直遵循的大部分教程。但是,我仍然不清楚一個方面。SQLiteOpenHelper - 數據庫是如何創建的?
有一個擴展SQLiteOpenHelper的MyDBHelper內部類。 外部變量包括名爲d的SQLiteDatabase。 MyDBHelper的代碼是:
private static class MyDBHelper extends SQLiteOpenHelper {
MyDBHelper(Context c) {
super(c, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL(DATABASE_CREATE);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVers, int newVers) {
Log.w(TAG, "Upgrading database from version " + oldVers + " to " + newVers + ", which will destroy all old data.");
db.execSQL("DROP TABLE IF EXISTS GM");
onCreate(db);
}
}
我的問題是如何實際創建初始數據庫。它發生在onCreate()方法中,但據我所知,這是永遠不會調用。我知道它是在第一次創建數據庫時調用的,但是在哪裏?此外,它是如何通過SQLiteDatabase數據庫?我沒有將任何數據庫傳遞給該方法。我的SQLiteDatabase數據庫變量是如何從外部類設置爲創建的數據庫?有人可以通過這個像白癡一樣談論我嗎?