Android 数据库 Realm 使用教程讲解指南(二)

上一篇的后续 Android 数据库 Realm 使用教程讲解指南(一)

本文主要是两个点。

1.在项目中遇到的问题,使用到了Realm数据库的多配置功能(一个项目创建两个数据库)

2.介绍一个查看Realm数据库表的工具 Realm Studio(这个工具反正我是爱了)

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

Android 数据库 Realm 使用教程指南(三)

发布了57 篇原创文章 · 获赞 40 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_37492806/article/details/102557203