《android新一代數據庫--realm》

在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數據查詢出來也是在毫秒級的。

相關文章
相關標籤/搜索