那么,这段代码背后的意义何在? (我是Android新手中的SQL)我创建了一个新类,通过SQLiteOpenHelper类创建数据库。我们在这里讨论什么背景?为什么我们为工厂传递'null'?任何人都可以详细解释代码的彻底工作吗?谢谢。
超级语法是:super(Context,databaseName,factory,databaseVersion)
public class DBOpenHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "database.db";
private static final int DATABASE_VERSION = 1;
public DBOpenHelper(Context context) {
super(context,DATABASE_NAME, null, DATABASE_VERSION);
}
那么,这段代码背后的意义何在?
SQLiteOpenHelper是一个辅助类,也就是说,它是抽象的,因此它需要一个子类(即它必须被扩展,不能单独使用它)。此外,它要求子类重写onCreate和onUpgrade方法。
我们在这里讨论什么背景?
它需要一个Context,以便能够确定/提取包名称,该名称用于确定数据库文件的位置。 Context本身提供应用程序环境信息(包括包)。 Context
为什么我们为工厂传递'null'?
factory,如果不为null,则是一个CursorFactory,它允许通过SQLiteCursorDriver Cursor事件处理(覆盖方法)。很少需要这样的覆盖,因此通常使用null,因为它表明不使用工厂。
所以要纠正你的代码,至少应该是: -
public class DBOpenHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "database.db";
private static final int DATABASE_VERSION = 1;
public DBOpenHelper(Context context) {
super(context,DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
那么,这段代码背后的意义何在? (第2部分/额外)
您不限于使用SQLiteOpenHelper。您可以使用SQliteDatabase openDatabase或SQLiteDatabase openOrCreateDatabase方法打开(连接)SQLiteDatabase。