android realm 分页,《android新一代数据库--realm》
在android的开发过程中,客户端需要缓存部分数据,这时候数据库也许就是我们最先想到的。现在比较流行的数据有greenDao、ormlite、litepal、DBFlow、ActiveAndroid等。Realm也是最近才开始的,于是自己根据官方文档开始了我的Realm之路。1、首先就是引用Realm,需要在项目中的build.gradle添加classpath "io.realm:real..
在android的开发过程中,客户端需要缓存部分数据,这时候数据库也许就是我们最先想到的。现在比较流行的数据有greenDao、ormlite、litepal、DBFlow、ActiveAndroid等。Realm 也是最近才开始的,于是自己根据官方文档开始了我的Realm之路。
1、首先就是引用Realm,需要在项目中的build.gradle添加 classpath "io.realm:realm-gradle-plugin:last_version",然后就是需要使用module的build.gradle中添加apply plugin: 'realm-android'。这样就基本配置好了就是开发了
2、具体实现数据储存
先创建一个类来缓存数据
public class Person extends RealmObject {
@PrimaryKey
private int id=0;
private String name;
private int age;
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; }
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
注意我们必须直接继承自RealmObject
接下就开始储存数据
Realm realm = Realm.getInstance(new RealmConfiguration.Builder(this)
.name("myOtherRealm.realm")
.build());
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
Person person;
long l = System.currentTimeMillis();
for (int i = 0; i <10 ; i++) {
person=new TestBean();
person.setId(i);
realm.copyToRealmOrUpdate(person);
}
Log.d("MainActivity", ((System.currentTimeMillis() - l) + " realm"));
}
}, new Realm.Transaction.OnSuccess() {
@Override
public void onSuccess() {
Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT).show();
}
});
这样就成功了。
Realm还有有很多方法在这里就不一一列举了。我就再谈谈我的使用的感受
优点:
速度快、能加密
不足的地方
数据关联:
这个是一般的ORM框架一样,需要提前建立好关系,如果你需要临时按照一定条件去查询,只可以分开多次查询,不可以像sqlite连表查询。
稳定性:
这个可能和我自己的需求有关,应用有一些数据是先准备好的,软件把数据下载下来使用,现在realm还有新的功能在添加,数据保存的格式也会改动,数据库需要升级对我来说比较痛苦。
更新操作:
需要按照条件查询出来,写代码更新,不像sqlite一个语句搞定。
不支持分页:
查询结果不支持分页,但是相对速度快来说应该不是个事情,25k数据查询出来也是在毫秒级的。
更多推荐
所有评论(0)