动态 SQL 的使用

目录

  • [1、< if> 标签](#1、< if> 标签)
  • [2、< trim> 标签](#2、< trim> 标签)
  • [3、< where> 标签](#3、< where> 标签)
  • [4、< set> 标签](#4、< set> 标签)
  • [5、< foreach> 标签](#5、< foreach> 标签)

1、< if> 标签

< if test="条件语句"> xxxx < /if>

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

2、< trim> 标签

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

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

3、< where> 标签

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

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

4、< set> 标签

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

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

5、< foreach> 标签

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


  • collection:绑定方法参数中的集合,如 List,Set,Map或数组对象
  • item:遍历时的每一个对象变量名
  • open:语句块开头的字符串
  • close:语句块结束的字符串
  • separator:每次遍历之间间隔的字符串
相关推荐
AlickLbc31 分钟前
DM-V8数据库证书过期处理过程记录
数据库
l1t32 分钟前
DeepSeek总结的五分钟测试:Ted Dunning 谈 DuckDB 为何让分析更轻松
数据库·sql·duckdb
超级新零售1 小时前
零售 SaaS 与本地部署,技术责任边界究竟怎么分?
数据库·零售
考虑考虑1 小时前
瀚高数据库
数据库·后端·postgresql
dishugj2 小时前
oracle日志切换三条命令区别
数据库
Patrick在香港2 小时前
一个斜杠,把毫秒变成十几秒
android·数据库·python·性能优化·正则表达式·回溯·redos
悟道书生2 小时前
(一)Navicate为什么转存结构和数据只转存表而不包含建库?
数据库·oracle
赤龙ERP3 小时前
ERP周报:连接器开闸、国产GPU进场与智能工厂253家
数据库·人工智能·大模型·rpa·erp·企业数字化·builderpattern
lusklusklusk3 小时前
SQL Server补丁版本号为什么“日期新反而版本低”?——GDR、CU、CU+GDR 版本号规则与升级路径详解
数据库
key_3_feng3 小时前
评估与对齐:Agent 自我进化的护栏
前端·数据库·agent