if
元素
主要用于判断传入参数的有效性,可以动态的对多个字段判断,如果满足条件将会添加到查询语句之中,不满足则不填加。
where元素
where元素的作用就是在写入where元素的地方插入一个where,可以做一些智能处理:
如果所有的条件都不满足那么MyBatis就会查出所有的记录
如果输出后是and 开头的,MyBatis会把第一个and忽略
在where元素中你不需要考虑空格的问题,MyBatis会智能的帮你加上
trim
元素
用于处理动态语句中的格式问题,可以去除动态生成sql语句中的多余符号,trim的属性有:
prefix:
加上前缀
suffix:
加上后缀
suffixOverrides:
将尾部的指定内容覆盖掉
prefixOverrides:
将首部的指定内容覆盖掉
set
元素
set元素主要是用在更新操作的时候,它的功能和where类似,但是包含的内容不能为空,也就是必须有一个if标签内的值不为空。
foreach
元素
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合,foreach元素的属性主要有:
item:
表示集合中每一个元素进行迭代时的别名;
index:
指定一个名字,用于表示在迭代过程中,每次迭代到的位置;
open:
表示该语句以什么开始;
separator:
表示在每次进行迭代之间以什么符号作为分隔符;
close:
表示以什么结束。
Case-when-then-else-end
元素
类似于三原式表达式,可以通过条件判断得出需要输出的结果。
choose-when-otherwise
元素
类似于java的switch语句,choose相当于switch,when相当于case,otherwise相当于default。