Realm一个面向安卓(亦面相iOS)的移动端数据库技术。和SQLite不同,它允许你在持久层直接和数据对象工作。在它之上是一个函数式风格的查询api,众多的努力让它比传统的SQLite 操作更快 。基于这些原因让我决定试试Realm 。[引用自](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/1203/3743.html)
就我当前使用来看,比自己写SQLite省太多代码了,而且文档写的也很棒,就我这阅读能力,一天就大致掌握了怎么使用Realm了。
接下来写一下Realm的简单使用吧。
初始化:
RealmConfiguration configuration = new RealmConfiguration.Builder(this)
.schemaVersion(0)
// .deleteRealmIfMigrationNeeded() 加上这个方法的话,Realm数据库就会无视 Realm关联的属性发生变化,否则会抛出异常,为了防止抛出异常需要加上Migration
.migration(new Migration())
.name("user")//Realm名字,相当于数据库名字
.build();
Realm realm = Realm.getInstance(configuration);
加入数据:
//在进行任何的数据操作前,必须调用beginTransaction()和commitTransaction()保证闭合操作
realm.beginTransaction();
//copyToRealm方法可以直接添加Iterable类型的数据,也就是说可以直接 copyToRealm(ArrayList<E> list)
realm.copyToRealm(user1);
realm.copyToRealm(user2);
realm.commitTransaction();
查询数据:
//获取数据
RealmResults<User> realmResults = realm.where(User.class).findAll();
//查询数据,realm.where(User.class).between()/beginWith/endWith等
// realmResults.sort(); 此方法可以对结果进行排序
写了一个小Demo[Realm Demo](https://github.com/kaershushu/RealmAPP)