Realm数据库-目前最流行的android数据库

ACID ,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
Realm数据库快速入门教程
http://www.tuicool.com/articles/V7ZFvuB
需要知道的一些问题
所有的存储对象需要继承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有着优越的查询性能。

你可能感兴趣的:(android,进阶)