Google关于数据库,从最初的SQlite, 到后来的GreeDAO,用起来都不错。最近项目中想尝试下Google的Room数据库,还可以跟RxJava结合,先把用法记录如下:
参考文档
https://developer.android.google.cn/jetpack/androidx/releases/room
1. 项目中引入Room
2. app build.gradle
配置APP中的build.gradle,这样子会有schemas文件夹。里面定义的是每个版本数据库的结构。
- 定义一个实体类,一定要有getter和setter方法
注解 @Entity - 定义Dao接口,用于具体的操作
注解 @Dao
3. 定义数据库
注解 @DataBase
使用,数据库操必须在子线程中。不然会报错
AppDatabase db = AppDatabase.get(getApplicationContext());
db.jPushNotificationMessageDAO().getAll()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<List<User>>() {
@Override
public void accept(List<User> users) throws Exception {
Log.i(TAG, "accept: " + users.size());
}
});