目录

动态-SQL-的使用

动态 SQL 的使用

1、< if> 标签

< if test=“条件语句”> xxxx < /if>

只有当条件语句满足条件,才会拼接 < if> 标签内容,因此可用于可选字段。

https://i-blog.csdnimg.cn/direct/171f8e786e0f4a73b6717025c3d37bd3.png

2、< trim> 标签

如果有多个可选字段,一般使用< trim>标签结合< if>标签。

https://i-blog.csdnimg.cn/direct/b8a0bb3f0ab543bd97a0cf6508cffebb.png

  • prefix:整个语句块以 prefix 为前缀。
  • suffix:整个语句块以 suffix 为后缀。
  • prefixOverrides:表示整个语句块要去除的前缀。
  • suffixOverrides:表示整个语句块要去除的后缀。

3、< where> 标签

根据传入的对象属性做 where 条件查询,对象属性不为 null,则都作为查询条件。

https://i-blog.csdnimg.cn/direct/d96ce1f2211b4d6d8d317e8e70c0e099.png

以上标签也可以使用 < trim prefix=“where” prefixOverrides=“and”> 替换

4、< set> 标签

根据传入的对象属性来更新数据,使用该标签来指定动态内容。

https://i-blog.csdnimg.cn/direct/3e1e72f211614afe81aa5c2cd2ea4eea.png

以上标签也可以使用 < trim prefix=“set” suffixOverrides=“,”> 替换。

5、< foreach> 标签

对集合进行遍历时可以使用该标签,一般用于批量删除和插入。

https://i-blog.csdnimg.cn/direct/545cd777f0d1446a89289fe5b9d14ded.png

https://i-blog.csdnimg.cn/direct/1f0b01e8fb5f41c89fecfffec97b047f.png

  • collection:绑定方法参数中的集合,如 List,Set,Map或数组对象
  • item:遍历时的每一个对象变量名
  • open:语句块开头的字符串
  • close:语句块结束的字符串
  • separator:每次遍历之间间隔的字符串