DBFlow源码分析:SQL拆解(BaseQueriable,BaseModelQueriable)

96
linheimx
2016.12.07 17:15* 字数 257

以面向对象的方式看待sql

sql语句由好多部分组成。
把每一部分抽象出类。

结构

Queriable 存在的意义?

The most basic interface that some of the classes such as Insert, ModelQueriable, Set, and more implement for convenience.
为其他的类提供便捷的操作。

有哪些便携操作?

BaseQueriable 做了基本的实现

  1. count


  2. hasData
    通过count来具体的实现:


  3. query
    执行查询语句:


  4. execute
    通过query来具体的实现:


  5. compileStatement
    获得编译后的语句:


BaseModelQueriable

** 实现了对 model的相关查询**

  1. 查询一个


  2. 查询一堆


** 实现了对 自定义model 的相关查询**

  1. 查询一个


  2. 查询一堆


转变为其它的便捷使用对象

  1. FlowCursorList:

对cursor的包装,便于在listview,或类似的控件中使用。


  1. FlowQueryList:

内部使用了FlowCursorList,但是它继承于FlowContentObserver,拥有观察数据改变的能力


  1. AsyncQuery
    实现异步查询


  2. CursorResult
    持有cursor对象,提供便捷的方法访问cursor。


DBFlow
Web note ad 1