Ream的入门使用

来源:互联网 发布:电商发展数据统计 编辑:程序博客网 时间:2024/06/05 14:13

一.介绍

Realm是一个不错的手机平台上的数据库,支持多种编程环境,如:Java、Object-C、React Native、Swift、Xamari等。

Realm的官网:https://realm.io/

github地址:https://github.com/realm

realm-java库的文档:https://realm.io/docs/java/latest/

二.使用

1)配置:

//1.工程gradlebuildscript {    repositories {        jcenter()    }    dependencies {        //1. 添加realm插件        classpath "io.realm:realm-gradle-plugin:1.2.0"    }}//2. app的gradleapply plugin: 'realm-android'dependencies {    compile 'io.realm:realm-android-library:1.2.0'}
2)数据块操作实体类

package com.peter.schoolmarket.data.pojo;import java.io.Serializable;import io.realm.RealmObject;import io.realm.annotations.PrimaryKey;import io.realm.annotations.Required;/** * Created by PetterChen on 2017/4/10. */public class User extends RealmObject implements Serializable {    @PrimaryKey //主键id    private int id;//    private String username;//用户名    private String password;//用户密码    private String phone;//手机号    private String imgUrl;//头像地址    public User() {        //    }    public void setId(int id) {        this.id = id;    }    public void setUsername(String username) {        this.username = username;    }    public void setPassword(String password) {        this.password = password;    }    public void setPhone(String phone) {        this.phone = phone;    }    public void setImgUrl(String imgUrl) {        this.imgUrl = imgUrl;    }    public int getId() {        return id;    }    public String getUsername() {        return username;    }    public String getPassword() {        return password;    }    public String getPhone() {        return phone;    }    public String getImgUrl() {        return imgUrl;    }}
3)初始化

//Realm初始化,这是默认初始化,可以自定义初始化Realm.init(this);//this表示上下文RealmConfiguration config = new RealmConfiguration.Builder().build();//可以修改Realm.setDefaultConfiguration(config);

4)数据库操作,可以使用事务或者事务块,对于事务块,有同步的和异步的,如果使用异步事务块,需要手动关闭

//增,事务增Realm realm=Realm.getDefaultInstance();realm.beginTransaction();realm.copyToRealm(user);realm.commitTransaction();//增,事务块增Realm  mRealm=Realm.getDefaultInstance();mRealm.executeTransaction(new Realm.Transaction() {    @Override    public void execute(Realm realm) {    realm.copyToRealm(user);    }});//删,事务块删Realm  mRealm=Realm.getDefaultInstance();final RealmResults<Dog> dogs=  mRealm.where(Dog.class).findAll();mRealm.executeTransaction(new Realm.Transaction() {    @Override    public void execute(Realm realm) {        Dog dog=dogs.get(5);        dog.deleteFromRealm();        //删除第一个数据        dogs.deleteFirstFromRealm();        //删除最后一个数据        dogs.deleteLastFromRealm();        //删除位置为1的数据        dogs.deleteFromRealm(1);        //删除所有数据        dogs.deleteAllFromRealm();    }});//同理,也可以使用事务删//查,查询全部Realm  mRealm=Realm.getDefaultInstance();RealmResults<Dog> dogs = mRealm.where(Dog.class).findAll();List<Dog> list = mRealm.copyFromRealm(dogs);//查,条件查询Realm  mRealm=Realm.getDefaultInstance();Dog dog = mRealm.where(Dog.class).equalTo("id", id).findFirst();//改Realm  mRealm=Realm.getDefaultInstance();Dog dog = mRealm.where(Dog.class).equalTo("id", id).findFirst();mRealm.beginTransaction();dog.setName(newName);mRealm.commitTransaction();

三.最后

这篇博文算不上是原创,都是参考其它博文写的,只是为了以后自己有用到Realm时,可以不用再去查资料。
参考博文:
http://blog.csdn.net/fwt336/article/details/53066405?locationNum=1&fps=1
http://www.cnblogs.com/liushilin/p/5752099.html
http://www.jianshu.com/p/fdc9492b714a


原创粉丝点击