Realm
Posted by Bruce Tsai
05/30/2016
Realm 是由 Y Combinator 公司開發的一款支持運行在手機、平板和可穿戴設備上的嵌入式數據庫(旨在取代 Core Data 和 Sqlite )。Realm 並不是對 CoreData 的簡單封裝,相反地,Realm 並不是基於 Core Data,也不是基於 SQLite 所構建的。它擁有自己的數據庫存儲引擎,可以高效且快速地完成數據庫的構建操作。
Realm 可以輕鬆地移植到專案當中,並且絕大部分常用的功能(比如說新增、查詢等等)都可以用一行簡單的代碼輕鬆完成!目前支持 Objective-C、Swift 和 Java 三種語言,也就是說能在 iOS、Android 和 Mac 上面跨平台使用。
使用範例
// Just extend your standard POJO from RealmObject:
public class Dog extends RealmObject {
private String name;
private int age;
@ignored private int dontPersistMe;
// + Standard setters and getters here
}
Realm realm = Realm.getDefaultInstance();
// Transactions give you easy thread-safety
realm.beginTransaction();
Dog dog = realm.createObject(Dog.class);
dog.setName("Rex");
dog.setAge(3);
realm.commitTransaction();
// Queries uses Builder pattern to build up the query conditions
RealmResults<Dog> query = realm.where(Dog.class)
.greaterThan("age", 8)
.findAll();
// Queries are chainable
RealmResults<Dog> allRex = query.where()
.contains("name", "Rex")
.findAll();
public class Person extends RealmObject {
private String name;
private RealmList<Dog> dogs;
}
realm.beginTransaction();
Dog mydog = realm.createObject(Dog.class);
Person person = realm.createObject(Person.class);
person.setName("Tim");
person.getDogs().add(mydog);
realm.commitTransaction();