当前位置: 首页 > 工具软件 > realm-java > 使用案例 >

Realm Java 简明教程(1)

萧修永
2023-12-01

Realm Java 简明教程

Realm 是一个轻量的android版本的数据存储库

Realm 是一个轻量的android版本的数据存储库,快速简洁的操作方式,使得其优势得以凸显,我们来看下一个实例:

// 定义需要存储的类,继承自 RealmObject
public class Dog extends RealmObject {
    @Required // Name cannot be null
    private String name;
    private int age;

    // ... Generated getters and setters ...
}
public class Person extends RealmObject {
    @Required // Name is not nullable
    private String name;
    private String imageUrl; // imageUrl is an optional field
    private RealmList<Dog> dogs; // A person has many dogs (a relationship)

    // ... Generated getters and setters ...
}

// 像一般的操作方式使用它
Dog dog = new Dog();
dog.setName("Rex");
dog.setAge("1");
Log.v(TAG, "Name of the dog: " + dog.getName());

// 获取一个Realm实例
Realm realm = Realm.getInstance(context);

// 查找Dog数据库中字段age小于2的所有数据
RealmResults<Dog> puppies = realm.where(Dog.class).lessThan("age", 2).findAll();
puppies.size(); // => 此时还没有插入存储,因此为0

// 保存这个数据
realm.beginTransaction();
realm.copyToRealm(dog);
realm.commitTransaction();

// 查询是自动同步更新的
puppies.size(); // => 1

//异步查询和更新数据
realm.executeTransaction(new Realm.Transaction() {
    @Override
    public void execute(Realm realm) {
        // 开始查询和修改数据
        Dog theDog = realm.where(Dog.class).equals("age", 1).findFirst();
        theDog.setAge(3);
    }
}, new Realm.Transaction.Callback() {
    @Override
    public void onSuccess() {
    // 原始的查询数据会自动更新
    puppies.size(); // => 0 because there are no more puppies (less than 2 years old)
    dog.getAge();   // => 3 数据已经修改
    }
});

我们来看下如上的流程,发现处理过程比起我们之前使用的数据库方案简单了许多。像litepal的操作已经很简单,但是相对来说还是需要配置一些xml和app参数才可以使用。相对来说,Realm则非常轻量,简单易用,有同步和异步处理方案,代码相对也非常优雅。

开始

  • 下载库或者去官网下载代码
    Realm jar
    Realm src

  • 前期要求

    • 我们仅支持android
    • Android Studio >= 0.8.6 — 使用Eclipse,往下看.
    • 最新的Android SDK版本.
    • JDK 版本 >=7.
    • 我们支持android2.3以上版本
  • 使用
    • 你可以选择手动添加或者使用maven工具实现。
      Maven
      1.请确保您的项目使用jcenter作为一个依赖库 (默认的是最新的android gradle plugin)
      2.在你的工程依赖库增加compile ‘io.realm:realm-android:0.87.4’
      3.使用工具->Android->同步即可
      Jar
      1.下载jar包解压
      2.新建一个工程
      3.复制jar文件夹到app/libs里面
      4.在工程的依赖里面加入包含此库。
  • 混淆要求
    Realm 在编译时生成每个RealmObject 的代理类。为了确保这些类可以在混淆和静态分析工具能运行的,你的混淆语法需要如下去编写:
-keep class io.realm.annotations.RealmModule
-keep @io.realm.annotations.RealmModule class *
-keep class io.realm.internal.Keep
-keep @io.realm.internal.Keep class * { *; }
-dontwarn javax.**
-dontwarn io.realm.**

Api查询

你可以在官方地址查看到所有的api使用接口。
具体Models的使用规则,下一章节再来分析。

 类似资料: