1)sqlite的基本使用:创建表格、删除表格、插入、修改、查询操作;
2)常用第三方数据库了解:room(首推)、real、greendao等等;
文章目录
创建数据库
- 这里创建一个BookStore.db的数据库,在数据库中新建一张Book表,表中包含id(主键)、作者、价格、页数、书名。
- 建表语句:
create table Book (
id integer primary key autoincrement,
author text,
price real,
pages integer,
name text)
方法一:继承SQLiteOpenHelper
两个抽象方法
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
两个实例方法
- getReadableDatabase()
- getWritableDatabase()
三个构造方法
构造方法是一种特殊的方法,它是一个与类同名且返回值类型为同名类类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) {
super(context, name, factory, version, errorHandler);
}
@RequiresApi(api = Build.VERSION_CODES.P)
public MySQLiteOpenHelper(Context context, String name, int version, SQLiteDatabase.OpenParams openParams) {
super(context, name, version, openParams);
}
代码
- 新建MySQLiteOpenHelper 类继承自SQLiteOpenHelper
- 定义一个字符串常量,写入建表语句
- onCreate()中,用execSQL()执行这条建表语句,并弹出一个Toast
- 可以创建数据库的同时新建一个表
- autoincrement: 自然增长(即12345……),之后就不需要再给id赋值了
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
private Context mContext;
public static final String CREATE_BOOK = "create table if not exists Book ( " +
"id integer primary key autoincrement, " +
"author text, " +
"price real, " +
"pages integer," +
"name text)";
public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
mContext = context;
}
public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) {
super(context, name, factory, version, errorHandler);
mContext = context;
}
@RequiresApi(api = Build.VERSION_CODES.P)