使用Realm进行数据操作(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baidu_32377671/article/details/54969839

初探Realm的基本使用

Realm的官方说明:https://realm.io/docs/java/latest/#installation

一、添加插件

  • 第一步:添加classpath “io.realm:realm-gradle-plugin:2.3.1”
    classpath

  • 第二步:添加apply plugin: ‘realm-android’
    applyplugin

二、配置Realm数据库

在自定义的Aplication中对Realm进行配置。

/**
 * Author LYJ
 * Created on 2017/2/9.
 * Time 11:35
 */

public class App extends Application{
    @Override
    public void onCreate() {
        super.onCreate();
        Realm.init(this);//初始化Realm
        RealmConfiguration configuration = new RealmConfiguration.Builder()
                .name("mineRealm.realm")//设置数据库名称
                .schemaVersion(0)//设置版本号
                .build();
        Realm.setDefaultConfiguration(configuration);//设置配置
    }
}

三、创建Person数据表

创建Person类并继承RealmObject。使用@PrimaryKey修饰的变量为主键。

/**
 * Author LYJ
 * Created on 2017/2/9.
 * Time 11:49
 * 这就相当于一张表,Person表
 */

public class Person extends RealmObject{
    @PrimaryKey
    private String id;//主键ID
    private String name;//姓名
    private int age;//年龄

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

四、在Activity中获取和关闭Realm

  • 获取Realm对象
realm = Realm.getDefaultInstance();
  • 关闭Realm
    /**
     * 销毁界面
     */
    @Override
    protected void onDestroy() {
        realm.close();
        super.onDestroy();
    }

五、增加数据

使用事务向Person表中增加数据。在Realm中主键不能自增。这里将使用UUID来为Person表设置主键的ID。

    Person person = new Person();//要插入的数据
    person.setId(UUID.randomUUID().toString());//设置ID
    person.setName(inputName);//设置插入数据的名字
    person.setAge(Integer.parseInt(inputAge.trim()));//设置插入数据的年龄
    realm.beginTransaction();//开启事务
    realm.copyToRealmOrUpdate(person);//传入对象
    realm.commitTransaction();//提交事务

【向Person数据表中添加3条数据。】
插入数据
【通过上图中的操作,成功向数据库中插入了3条数据。】
查询结果

六、修改数据

使用事务修改Person表中的数据。这里先使用条件查询,获取到查询结果后会得到一个Person对象,该对象就对应着表中的一条数据。随后直接对对象的修改在提交事务,就可以将数据更新了。

    Person result = selectResult(inputName);//查询结果
    realm.beginTransaction();//开启事务
    result.setAge(Integer.parseInt(inputAge.trim()));//设置年龄
    realm.commitTransaction();//提交事务

【将Person表中名为Make的年龄改为21。】
修改数据
【成功的将Make的年龄改为了21。】
查询结果

七、删除数据

使用事务删除Person表中的数据

    Person result = selectResult(inputName);//查询结果
    realm.beginTransaction();//开启事务
    result.deleteFromRealm();//删除数据
    realm.commitTransaction();//提交事务

【因为Make的存在影响了Jack与Rose的感情,所以Make决定离开】
删除
【从此Jake与Rose幸福的生活在了一起】
查询

八、查询数据

  • 全部查询
    RealmResults<Person> results = realm.where(Person.class).findAll();//查询结果
    List<Person> personList = realm.copyFromRealm(results);
  • 条件查询
    /**
     * 条件查询
     * @param name
     */
    private Person selectResult(String name){
        //条件查询
        Person person = realm.where(Person.class).equalTo("name",name).findFirst();
        return person;//查询结果
    }

参考资料

猜你喜欢

转载自blog.csdn.net/baidu_32377671/article/details/54969839
今日推荐