私が知っているように、私はアンドロイドでSQLiteデータベースを学んでいます、私たちは通常以下のパターンを使用します(コードスニペットを参照)、私の理解は
NoteDbHelpe
obj がインスタンス化されると、コンストラクターが呼び出され、対応するデータベースが作成されているかどうかがチェックされます。- そうでない場合は、データベースを作成し、 を呼び出して
onCreate
テーブルを作成します。 - アップグレードする必要がある場合は、データベースをアップグレードする必要があるかどうかを確認します。アップグレードする必要がある場合は、
onUpgrade
.
私の主な関心事は、データベースがいつ作成されるかです。コンストラクターで処理する必要があると思いますが、私の理解は正しいですか?
public class NoteDbHelper extends SQLiteOpenHelper{
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "notes_db";
public NoteDbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db) {
String createNoteTableSql = "CREATE TABLE ...";
db.execSQL(createNoteTableSql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + NOTE_TABLE_NAME);
// Create tables again
onCreate(db);
}