动态SQL篇
什么是动态SQL?
动态SQL就是根据不同的条件生成不同的SQL语句,
利用动态SQL可以摆脱拼接SQL语句的痛苦
动态SQL元素和JSTL或基于类似XML的文本处理器类似。在Mybatis之前的版本中,有很多元素需要花时间
了解。Mybatis3大大精简了元素种类,现在只需要学习原来一半的元素即可。Mybatis采用功能强大的基于OGNL
的表达式来淘汰其他大部分元素。
if
choose(when,otherwise)
trim(where,set)
foreach
一,搭建环境
创建一个基础工程
1.导包
2.编写核心配置文件
3.编写实体类
@Data
public class Blog {
private int id;
private String title;
private String author;
private Date createTime;
private int views;
}
4.编写实体类对应的Mapper接口和Mapper.xml文件
二,IF
测试
三,trim(where,set)
where
测试
四,choose(when,otherwise)
测试
<choose></choose>里的<when></when>标签,会按顺位满足一个的条件下查询,如果满足when下的条件,则otherwise失效,如果
when下的条件都不满足,则会启用otherwise
五,SQL片段
使用SQL标签抽取公共部分
在需要使用的地方使用include标签引用即可
最好基于单表来定义SQL片段
不要存在where标签
六,FOREACH
测试
动态SQL就是在拼接SQL语句,只要保证SQL正确性,按照SQL格式,去排列组合
所谓动态SQL本质还是SQL语句,只是我们可以在SQL层面,去执行一个逻辑代码