foreach
mybatis的foreach标签经常用于遍历集合,构建in条件语句或者批量操作语句
对于该标签,有如下属性
collection : 表示需要迭代的集合的名称(有待商榷,好像老版本不可以直接使用形参名,需要指定list或set…),可以使用@Param注解指定
例如接口中方法为 batchInsert(List<Integer> numbers),那么迭代时需要指定collection='numbers',如果该方法中参数被@Param注解取了别名,则collection需要同步更改
item :表示本次迭代获取的元素,若collection为List、Set或者数组,则表示其中的元素;若collection为map,则代表key-value的value,该参数为必选
open : 表示拼接的语句以什么开始,常填入左括号(
close :表示拼接的语句以什么开始,常填入右括号)
index :在list、Set和数组中,index表示当前迭代的位置,在map中,index代指是元素的key,该参数是可选项。
注意:index指代的位置是下标,当需要使用该值拼接sql时(例如index=‘num’),使用#{num}获取迭代下标去拼接sql,当用作if标签进行判断时直接使用num即可