SQLiteDataBase
和SQLiteOpenHelper
的区别是什么?
实例化SQLiteDataBase
和实例化SQLiteOpenHelper
分别创建出来的对象是什么?
创建SQLite数据库的代码如下:
public class MyHelper extends SQLiteOpenHelper {
public MyHelper(@Nullable Context context) {
super(context, "directory_example.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL("CREATE TABLE information(user_id INTEGER PRIMARY KEY AUTOINCREMENT,user_name VARCHAR(20),user_phone INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
其中下边的语句是不是用来创建数据库的?
public MyHelper(@Nullable Context context) {
super(context, "directory_example.db", null, 1);
}
那么下边的语句是用来创建什么的?和上边的具有区别是什么?
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL("CREATE TABLE information(user_id INTEGER PRIMARY KEY AUTOINCREMENT,user_name VARCHAR(20),user_phone INTEGER)");
}
SQLiteDatabase 是用于执行数据库操作的类,SQLiteOpenHelper 是 SQLiteDatabase 的一个帮助类,用来管理数据库的创建和版本的更新。
其中 SQLieDatase 对象是通过 SOLiteOpenHelper调用方法来获得的。
SQLiteDatabase类一般用来操作表数据,如对数据表的数据进行增删改查操作。
SQLiteOpenHelper 类一般用来操作表结构,如创建表、修改表结构等。