在android的開發過程當中,客戶端須要緩存部分數據,這時候數據庫也許就是咱們最早想到的。如今比較流行的數據有greenDao、ormlite、litepal、DBFlow、ActiveAndroid等。Realm 也是最近纔開始的,因而本身根據官方文檔開始了個人Realm之路。java
一、首先就是引用Realm,須要在項目中的build.gradle添加 classpath "io.realm:realm-gradle-plugin:last_version",而後就是須要使用module的build.gradle中添加apply plugin: 'realm-android'。這樣就基本配置好了就是開發了android
二、具體實現數據儲存sql
先建立一個類來緩存數據數據庫
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緩存
接下就開始儲存數據app
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還有有不少方法在這裏就不一一列舉了。我就再談談個人使用的感覺ide
優勢:gradle
速度快、能加密ui
這個是通常的ORM框架同樣,須要提早創建好關係,若是你須要臨時按照必定條件去查詢,只能夠分開屢次查詢,不能夠像sqlite連表查詢。
這個可能和我本身的需求有關,應用有一些數據是先準備好的,軟件把數據下載下來使用,如今realm還有新的功能在添加,數據保存的格式也會改動,數據庫須要升級對我來講比較痛苦。
須要按照條件查詢出來,寫代碼更新,不像sqlite一個語句搞定。
查詢結果不支持分頁,可是相對速度快來講應該不是個事情,25k數據查詢出來也是在毫秒級的。