一、MyBatis中的动态sql
二、MyBatis分页功能
动态sql的标签
①if标签
<if test = "条件判断,返回true或false" >
SQL语句
</if>
②where标签
- 简化SQL语句中where子句处理 智能处理and、or等关键字
- <where>中有返回值会拼接条件,没有则不会
<where>
<if test="条件判断">
SQL语句
</if>
…
</where>
③choose(when、otherwise)标签
是一个组合标签,通常与when、otherwise标签配合使用 类似于Java中switch语句
<choose>
<when test="条件判断,返回true或false">
</when>
<when test="条件判断,返回true或false">
</when>
...
<otherwise>
</otherwise>
</choose>
④foreach标签
- 迭代一个集合,通常用于in条件
- 一般用来做批量删除和新增
collection可以接受参数类型为:数组,list,map
下面是三种写法的概览
对比数组、list集合、Map对象发现代码都大同小异,区别只有用来标识参数名称的collection属性,如果使用@Param注解为参数配置参数名称,则此处对应的就是参数名称,而Map的使用与前两者稍有不同,collection处所接受的为Map的key值。
④set标签
- 简化SQL语句中set子句处理
- 智能忽略更新语句尾部多出来的逗号
<set>
<if test="条件判断">
SQL语句
</if>
…
</set>
⑤trim标签
<trim prefix = "前缀"
suffix = "后缀"
prefixOverrides = "忽略前缀"
suffixOverrides = "忽略后缀" >
…
</trim>
MyBatis的分页
使用limit,设置两个参数