以面向?qū)ο蟮姆绞娇创齭ql
sql語句由好多部分組成就珠。
把每一部分抽象出類蛉威。
Condition
翻譯:條件
什么是條件仿荆?
舉個(gè)例子:
有一張學(xué)生表臊泌,其中有個(gè) age 字段鲤桥,現(xiàn)在有這樣的需求:查找出所有年齡大于18歲的學(xué)生。
sql: select from student where age>18;
where 后面的 age>18就是條件渠概。
1.分拆元素
條件需要的幾個(gè)元素:
DBFlow將這幾個(gè)元素抽象為 SQLCondition:
元素 | SQLCondition |
---|---|
列名稱 | columnName |
操作符 | operation |
值 | value |
2.對屬性的操作
對列名這個(gè)屬性茶凳,我們對他們會有很多操作:
age=18
age>18
age is null
...
在DBFlow中 IConditional來描述這些操作:
屬性實(shí)現(xiàn)了這個(gè)接口:
具體的實(shí)現(xiàn),借給了condition來處理
3. 結(jié)合
元素與 操作的結(jié)合:
4. 例子
針對name屬性來構(gòu)造一個(gè)條件:name="lijian"
針對屬性的eq方法播揪,它實(shí)際上調(diào)用了 Condition的eq方法贮喧。
屬性Property中的操作方法是對condition的包裝
列名,操作符猪狈,數(shù)值都準(zhǔn)備好了箱沦,那么它是怎么生成sql語句的?