MyBatis框架动态SQL的常用标签
- if:条件判断,与java中的if语句类似
-
where:为SQL语句动态添加where关键字
- choose:条件判断,这是一个组合标签,需要与when、otherwis标签搭配使用。可实现与java中的switch语句类似功能
- foreach:以遍历方式处理集合类型参数
- set:为SQL语句动态添加set关键字,实现动态实现数据更新功能
- trim:对SQL语句进行格式化处理,添加或移除前后缀
if标签
语法:
<if test="条件判断,返回true或者false">
SQL语句
</if>
优点:有效避免多条件查询拼接SQL语句时存在的隐患,保证了业务的准确性。
where标签
语法:
<where>
<if test="条件判断">
SQL语句
</if>
......
</where>
优点:可以自动剔除标签内部多余的and关键字,并可以在没有过滤条件时忽略where关键字,从而起到简化SQL语句并且智能处理where、and、or关键字的作用。
choose(when、otherwise)标签
语法:
<choose>
<when test="条件判断,返回ture或false">
SQL
</when>
<when test="条件判断,返回ture或false">
SQL
</when>
<otherwise>
SQL
</otherwise>
</choose>
使用:当执行到了choose标签时,只会进入test属性判断为true的第一个标签,执行之后便会跳出choose标签。所有when标签中的test属性为false,则进入otherwise标签。
MyBatis框架动态处理SQL处理集合参数
foreach标签
语法:
<foreach collection="参数名" item="元素别名" open="(separator=","clode=")"index="当前元素位置下标">
#{元素别名}
<foreach>
属性介绍:
item:遍历数组时,为数组或list组合中的元素起的别名。
open:起始位置的拼接字符,表示in语句以“(”左括号开始。
close:结束位置的拼接字符,表示in语句以“)”有括号结束。
separetor:元素之间的连接符,表示in语句中的元素之间以“,”逗号连接。
collection:参数名称。当参数为数组类型时,默认参数为array。当参数类型为list集合时,默认参数名为list。 当参数类型为map时,参数名称为map中集合元素所在键值对的key。
MyBatis框架动态SQL处理更新功能
主要通过set+if实现
set标签
语法:
<set>
<if test="添加判断">
SQL
</if>
......
</set>
set标签用法与wher标签十分相似。可以在其包裹的语句前拼接上一个set关键字,并能忽略更新语句尾部多余出来的逗号。配合if标签灵活使用set标签,就可以在拼接SQL时忽略不需要修改的字段,从而实现数据部分更新的功能。
MyBatis框架动态SQL知识扩展
Trim标签
语法:
<trim prefix="前缀" suffix="后缀" prefixOverrieds="忽略前缀" suffixOverrides="忽略后缀">
.....
</trim>
MyBatis框架的分页功能
基于MYSQL的分页查询。MYSQL数据库的分页关键字为limit,使用MyBatis框架对其进行操作,用法与客户端的操作基本相同。