当我们从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-方法。
你说,你的数据库不存在。你的计程仪有错误吗?还有,你试过吗?

关于android - SQLite DatabaseHelper类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6609827/

10-09 17:30