SqliteOpenHelper的子类是如何自定义的
时间: 2024-03-16 17:47:54 浏览: 27
要自定义一个`SqliteOpenHelper`的子类,需要继承`SqliteOpenHelper`类,并实现以下方法:
1. `onCreate(SQLiteDatabase db)`:在数据库第一次被创建时调用,用于创建数据库和表格等初始化操作。
2. `onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)`:在数据库版本更新时调用,用于更新数据库结构和数据等操作。
除了以上两个方法外,`SqliteOpenHelper`类还有其他方法,如`onOpen()`、`onDowngrade()`等,可以根据需要进行实现。
下面是一个自定义的`SqliteOpenHelper`子类的示例代码:
```java
public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "my.db";
private static final int DATABASE_VERSION = 1;
public MyDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS user (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS user");
onCreate(db);
}
}
```
在上述代码中,我们定义了一个名为`MyDatabaseHelper`的子类,它的构造方法将数据库名称和版本号传递给父类。在`onCreate()`方法中,我们创建了一个名为`user`的表格,包含三个字段:`_id`、`name`和`age`。在`onUpgrade()`方法中,我们删除了`user`表格,并重新创建了一个新的`user`表格。