MyBatis 动态SQL
1、MyBatis通过标签的配合使用,可实现如下功能
语句的动态拼接
前后缀格式处理
复杂参数处理
常用标签
1、if
说明:条件判断,与java中的if语句类似,是动态SQL技术中最常用的标签之一
语法:
<if test = "条件判断,返回true或false" >
SQL语句
</if>
2、where
说明:简化SQL语句中where子句处理,智能处理and、or等关键字,为sql语句的动态添加where关键字。
语法:
<where>
<if test="条件判断">
SQL语句
</if>
…
</where>
3、choose
说明:条件判断,这是一个组合标签,需要与when、otherwise标签配合使用。可以实现与Java中switch语句类似的功能。
语法:
<choose>
<when test="条件判断,返回true或false">
</when>
<when test="条件判断,返回true或false">
</when>
...
<otherwise>
</otherwise>
</choose>
4、foreach
说明:迭代一个集合,通常用于in条件
语法:
<foreach collection = "参数名称"
item = "元素别名"
open = "("
separator = ","
close = ")"
index = "当前元素位置下标" >
#{元素别名}
</foreach>
5、set
说明:简化SQL语句中set子句处理,智能忽略更新语句尾部多出来的逗号。
语法:
<set>
<if test="条件判断">
SQL语句
</if>
…
</set>
6、trim
说明:动态地为SQL语句添加前后缀,智能忽略标签前后多余的and、or或逗号等字符。
语法:
<trim prefix = "前缀"
suffix = "后缀"
prefixOverrides = "忽略前缀"
suffixOverrides = "忽略后缀" >
…
</trim>