? ? ? ? 從realm的beat版就開始關(guān)注了拙泽,雖然在實(shí)際項目中沒有正式使用〗颜牛現(xiàn)在Realm已經(jīng)發(fā)布到3.0了诈胜。是時候開始使用了豹障。Realm不是基于SQLite的ORM框架,它有自己的數(shù)據(jù)引擎存儲方式焦匈,是專門為移動端開發(fā)的跨平臺的數(shù)據(jù)庫血公。Realm號稱移動端最快的數(shù)據(jù)庫。那么到底有多快哪缓熟?本人親自測試了一下插入1w條數(shù)據(jù)(5個字段)耗時830毫秒累魔,夠快吧?接下來就開始使用Realm吧!
1環(huán)境配置
官方文檔3.0
使用Gradle配置Realm依賴
dependencies {
classpath"io.realm:realm-gradle-plugin:3.0.0"
}
applyplugin:'realm-android'
初始化Realm
在Application的 onCreate里初始化
添加實(shí)體類
Realm 數(shù)據(jù)模型定義需要繼承自RealmObject類够滑,如下圖薛夜。
Realm的基本操作
在操作前需要實(shí)例化一個Realm對象,通過 realm= Realm.getDefaultInstance();可以拿到一個默認(rèn)的實(shí)例版述。
Realm所有的操作都是一個完整的事務(wù)梯澜。通過realm.beginTransaction();realm.commitTransaction();操作】饰觯或者通過異步事務(wù)realm.executeTransactionAsync()晚伙;
1插入
插入可以通過realm.insert()方法插入一天或多條數(shù)據(jù)。
2修改
修改通過查出的結(jié)果修改后 Realm自動會寫入庫中
3查
Realm可以同步查和異步查
Realm 提供很多查詢的條件
between()俭茧、greaterThan()咆疗、lessThan()、greaterThanOrEqualTo()和lessThanOrEqualTo()
equalTo()和notEqualTo()
contains()母债、beginsWith()和endsWith()
isNull()和isNotNull()
isEmpty()和isNotEmpty()
4刪除
Realm 刪除有兩種方式午磁。
一 通過realm.deleteAll(); 刪除數(shù)據(jù)庫。
二 通過查詢的結(jié)果集可以刪除一天或多條