- DBFlow源码分析:SQL拆解(select,delete,u
- DBFlow源码分析:SQL拆解(Condition)
- DBFlow源码分析:SQL拆解(where)
- DBFlow源码分析:SQL拆解(BaseQueriable,B
- MyBatis 源码解析MyBatis如何解析配置 ?(七)
- Mybatis 文档篇 3.1:Mapper XML 之 sel
- Mybatis 文档篇 3.6:Mapper XML 之 Aut
- Mybatis 文档篇 3.2:Mapper XML 之 ins
- Mybatis 文档篇 3.3:Mapper XML 之 sql
- Mybatis 文档篇 3.4:Mapper XML 之 Par
以面向对象的方式看待sql
sql语句由好多部分组成。
把每一部分抽象出类。
结构
![](https://img.haomeiwen.com/i2596054/d0fef0f02f23883a.png)
1. select
select 语句看作是一个对象。
select 的getQuery是他的职责:负责生成sql语句。
入口:getQuery
![](https://img.haomeiwen.com/i2596054/0526aa02dfeffa48.png)
-
distinct
-
propertyList
** from**
交给 From 这个类来处理。
![](https://img.haomeiwen.com/i2596054/bdc0970c64c8640b.png)
2. delete
入口:getQuery
![](https://img.haomeiwen.com/i2596054/4028db863e5a77c8.png)
from
交给 From 来处理
![](https://img.haomeiwen.com/i2596054/6a35830fe5a776af.png)
3. update
入口:getQuery
![](https://img.haomeiwen.com/i2596054/299ec3e88618fdc5.png)
set
交给set语句处理:
![](https://img.haomeiwen.com/i2596054/7d944b7890ce84e2.png)
4. insert
入口:getQuery
![](https://img.haomeiwen.com/i2596054/35ee67fb7e974222.png)
-
conflict
![](https://img.haomeiwen.com/i2596054/675c8363f92ce6ad.png)
- columns
![](https://img.haomeiwen.com/i2596054/18318e844b7e85ce.png)
-
values
![](https://img.haomeiwen.com/i2596054/a470b4288b75cd4b.png)
![](https://img.haomeiwen.com/i2596054/3ee8d8813ec29bc7.png)
![](https://img.haomeiwen.com/i2596054/191fafec81dd50b0.png)
网友评论