动态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层面,去执行一个逻辑代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧