MyBatis 动态SQL【重点】
SQL中注释
//方式一
-- 1=1
//方式二【推荐使用】
<!-- 1=1 -->
一.动态SQL
- 动态SQL指的是:SQL语句可动态化
- MyBatis的动态SQL中支持OGNL表达式语言,OGNL(Object Graph Navigation Language)对象导航图语言
二.常用标签
- if 标签:用于完成简单的判断
- where 标签:用于解决SQL语句中where关键字及where后第一个and或or的问题
- trim 标签:可以在条件判断完的SQL语句前后添加或者去掉指定的字符
trim标签和where标签效果差不多,但是一般都要where标签
- prefix:添加前缀
- prefixOverrides:去掉前缀
- suffix:添加后缀
- suffixOverrides:去掉后缀
-
set 标签:主要用于解决 set 关键字及多出一个【,】问题
-
错误写法
-
正确写法
-
-
choose 标签:主要是用于分支判断,类似 java 中 if-else【switch-case】结构,只会满足所有分支中的一个。
错误情况:
正确情况:
- foreach 标签:类似于 java 中 for 循环,主要用于循环迭代
- collection:要迭代的集合
- item:当前从集合中迭代出的元素
- separator:元素与元素之间的分隔符
- open:开始字符
- close:结束字符
代码一:循环迭代
代码二:批量处理
- sql 标签:提取可重用的SQL片段