上一篇的后续 Android 数据库 Realm 使用教程讲解指南(一)
本文主要是两个点。
1.在项目中遇到的问题,使用到了Realm数据库的多配置功能(一个项目创建两个数据库)
2.介绍一个查看Realm数据库表的工具 Realm Studio(这个工具反正我是爱了)
Realm的多配置功能
先说第一个点,事情是这样的哈。在APP1.0的时候,项目中使用Realm的数据库名字是realm.realm,在2.0之后改为myrealm.realm,说实话我没太懂人家的意思。结果就是在2.0的项目中需要去兼容1.0数据库并且维护两个数据库(没必要),我是直接把1.0的数据库表的数据copy到2.0的数据库表。并删除1.0的数据。
1.创建不同的modules,进行不同数据库区分
PS:当时在做这一块的时候,也是被这module概念给迷惑了。事后感觉这个设计简单方便。每RealmMoudle对应的就是是每个数据库的表。
/**
* @Author yinzh
* @Date 2019/10/15 21:08
* @Description 食物 1.0数据库名字
*/
@RealmModule(classes = {DumplingsBean.class, NoodleBean.class} )
public class FoodModules {
}
public class DumplingsBean extends RealmObject {
@PrimaryKey
public int id;
public String Stuffing;
public String drinks;
}
public class NoodleBean extends RealmObject {
@PrimaryKey
public int id;
public String soup;
public String meat;
public String egg;
}
---------------------------------------------------------------------
/**
* @Author yinzh
* @Date 2019/10/15 21:08
* @Description 动物 2.0数据库名字
*/
@RealmModule(classes = {DogBean.class, CatBean.class})
public class AnimalModules {
}
public class CatBean extends RealmObject {
public String name;
public String age;
public String like;
public String eat;
}
public class DogBean extends RealmObject {
public String name;
public String age;
public String like;
public String eat;
}
2.Realm配置
// food.realm
RealmConfiguration foodConfig = new RealmConfiguration.Builder()
.name("food.realm")
.schemaVersion(2)
.modules(new FoodModules()) //标志food.realm 数据库所包含的
.migration(new MyMigration())
.build();
foodRealm = Realm.getInstance(foodConfig);
打印结果
2019-10-15 21:51:27.803 24847-24847/? I/Realm: 饺子馅 :角瓜鸡蛋----必备饮料:百岁山
2019-10-15 21:51:27.803 24847-24847/? I/Realm: 汤:肉味----肉:牛肉----小吃:卤蛋
RealmConfiguration animalConfig = new RealmConfiguration.Builder()
.name("animal.realm")
.schemaVersion(2)
.modules(new AnimalModules()) //标志animal.realm 数据库所包含的
.migration(new MyMigration())
.build();
animalRealm = Realm.getInstance(animalConfig);
打印结果
2019-10-15 21:57:57.713 25352-25352/? I/Realm: 名字 :Tom ----- 年龄:6 ----- 吃 :肉
2019-10-15 21:57:57.713 25352-25352/? I/Realm: 名字:九九 ---- 年龄:6 ---- 吃:鱼
关于如果使用工具Realm Studio