<foreach>中各个属性的含义:sql
collection:指定要遍历的集合: mybatis
List类型的参数会特殊处理封装在map中,map的key就叫list ;ide
item:将当前遍历出的元素赋值给指定的变量 ;spa
separator:每一个元素之间的分隔符 ;索引
open:遍历出全部结果拼接一个开始的字符 ;it
close:遍历出全部结果拼接一个结束的字符 ;io
index:索引。遍历list的时候是index就是索引,item就是当前值 ;test
遍历map的时候index表示的就是map的key,item就是map的值;
变量
mybatis的trim标签通常用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 “where“、“set“以及“values(“ 等前缀,或者添加“)“等后缀,可用于选择性插入、更新、删除或者条件查询等操做。foreach
prefix:
给sql语句拼接的前缀
suffix:
给sql语句拼接的后缀
prefixOverrides:
去除sql语句前面的关键字或者字符,该关键字或者字符由prefixOverrides属性指定,假设该属性指定为"AND",当sql语句的开头为"AND",trim标签将会去除该"AND"
suffixOverrides:
去除sql语句后面的关键字或者字符,该关键字或者字符由suffixOverrides属性指定
有时候咱们并不想应用全部的条件,而只是想从多个选项中选择一个。而使用if标签时,只要test中的表达式为 true,就会执行 if 标签中的条件。MyBatis 提供了 choose 元素。if标签是与(and)的关系,而 choose 是或(or)的关系。
choose标签是按顺序判断其内部when标签中的test条件出否成立,若是有一个成立,则 choose 结束。当 choose 中全部 when 的条件都不满则时,则执行 otherwise 中的sql。相似于Java 的 switch 语句,choose 为 switch,when 为 case,otherwise 则为 default。