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();

results matching ""

    No results matching ""