当我们从 Android 应用程序创建 SQLite 数据库时,可以使用扩展 SQLiteOpenHelper 的 DatabaseHelper 类。
我的构造函数如下
public DatabaseHelper(Context context)
{
super(context, dbName, null, DATABASE_VERSION);
}
然后是onCreate()方法
public void onCreate(SQLiteDatabase db)
{
String qry = "CREATE TABLE DEPT(dept_id INTEGER PRIMARY KEY, deptName TEXT)";
db.execSQL(qry);
InsertDepts(db);
}
但是当我创建 DatabaseHelper 类的实例时,我的数据库还没有创建。
我相信当我从此类创建对象时,构造函数会执行,因为尚未创建数据库,它将创建数据库并执行 onCreate() 方法。所以一定要创建一个数据库。
或者直到我们执行下面的代码它才执行 onCreate() 方法,即使我们从类中创建了一个对象。
databaseHelper.getWritableDatabase()
谁能解释一下databasehelper类的执行顺序。
最佳答案
您创建了 DatabaseHelper
类的实例,这会导致执行构造函数。构造函数将执行母类构造函数 (SQLiteOpenHelper
),然后检查数据库文件是否已经存在。
如果它存在,什么都不做,你的对象被创建。
如果不存在,则创建数据库文件并调用 onCreate
方法。
你说,你的数据库不存在。您在 LogCat 中收到任何错误吗?另外,你有没有试过accessing the Database using the adb ?
关于android - SQLite 数据库助手类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6609827/