<foreach>中各个属性的含义:
collection:指定要遍历的集合:
List类型的参数会特殊处理封装在map中,map的key就叫list ;
item:将当前遍历出的元素赋值给指定的变量 ;
separator:每个元素之间的分隔符 ;
open:遍历出所有结果拼接一个开始的字符 ;
close:遍历出所有结果拼接一个结束的字符 ;
index:索引。遍历list的时候是index就是索引,item就是当前值 ;
遍历map的时候index表示的就是map的key,item就是map的值;
mybatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 “where“、“set“以及“values(“ 等前缀,或者添加“)“等后缀,可用于选择性插入、更新、删除或者条件查询等操作。
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。