我正在android中学习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);
}