Realm數據庫-目前最流行的android數據庫

ACID,指數據庫事務正確執行的四個基本要素的縮寫。包含:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。
Realm數據庫快速入門教程
需要知道的一些問題
所有的存儲對象需要繼承RealmObject
比如我現在的項目的數據從網絡請求回來都會繼承自己寫的一個方便解析的基類,在這裏就需要做出一些適應。
但是該問題在swift中是不存在的。因爲swift是天生的面向協議編程範式。
  • 不能自定義getter、setter
realm會自動生成getter、setter,如果自定義getter、setter存儲就會有影響。如果要規避這個問題,可以通過設置這個對象的忽略屬性。
比如有個屬性id,需要自定義setter。可以在對象屬性裏把id設置爲忽略屬性,這樣realm就不會爲它自動生成getter、setter,但是也不會把id存入數據庫。接着自定義一個用於存儲的屬性比如realm_id。在id的setter中可以把把值也賦給realm_id。
這個問題在swift中也是不存在的,因爲swfit中使用的是willset、didset這種通知機制。
  • 查詢的結果不是數組
爲了能夠支持查詢結果的鏈式查詢,realm自定義了一個集合類型。可以枚舉,但是不是熟悉的數組了。又因爲realm的懶加載機制,所以不建議在數據層把這個枚舉轉成數組類型。這樣的缺點就是上層知道了數據的存儲邏輯。嚴格的說這裏不應該讓上層知道。但是這樣設計也許是爲了方便上層進行再次檢索,realm有着優越的查詢性能。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章