目录
什么是动态SQL
即通过Mybatis提供的各种标签对条件作出判断已实现动态拼接SQL语句,实现对数据库更准确的操作。
sqlmapper常用的动态SQL元素
接下来我们来逐一介绍~
if 元素
进行单条件的分支判断
在此条件中可以有三种情况:
- 两个条件都执行
- 只执行其中一个
- 无条件全查
注意:拼接 SQL 语句的时候注意 AND和逗号。
choose 元素
多条件分支判断,执行 顺序和写入顺序有关,相当于switch结构
当遇到的条件满足的时候则不再继续执行后面的条件
注意:拼接 SQL 语句的时候注意 AND和逗号。
where 元素
- 没有任何条件的时候,where标签整体不出现,也不会添加where关键字
- 将遇到的第一个and去掉没有其他表达式的时候
- 当有条件的时候会添加一个where关键词
set 元素
- 添加一个set关键词
- 每个条件后必须加逗号,set标签会自动去除sql语句中最后一个逗
set标签元素主要是用在update操作
trim 元素
万能标签 能替代 where/set 标签
foreach 元素
查询多个 循环语句
有两种方式:
- 参数是数组 关键词:array
- 参数是集合 关键词 :list
在测试类中的体现:
bind 元素
自定义一个上下文变量。
可用于进行模糊查询
注解版的动态SQL
脚本动态sql
需要在sql语句中加入“<script></script>”标签
方法中构建动态sql
在接口中定义内部类,来构建需要的动态sql语句
查询示例:
SQL 语句构造器
没有过多的使用类如 and的连接词
查询举例:
修改举例:
删除举例: