MyBatis的foreach使用小坑,传值一个常规参数,一个数组
先举个小例子
我们使用foreach进行批量插入
insert into user(id,name) values <foreach collection="list" separator="," item="item" index="index"> (#{item.id},#{item.name}) </foreach>
今天在操作库时遇到了一个小需求,传递的是关系表的 主键数组和 主键
//关系表 Integer saveItemId(@Param("itemId") Integer[] itemId, @Param("groupId") Integer groupId);
itemId 是关联的主键列表
groupId 是被关联的主键
这时传递了两个参数,foreach标签的collection属性就不会写了,写官方给出的类型,例如 array,list等会报错,找不到参数。
所以直接尝试的写了 @Param("itemId") 注解中的参数名,竟然成了哈哈哈哈。
<insert id="saveItemId"> insert into t_checkgroup_checkitem (checkgroup_id, checkitem_id) values <foreach collection="itemId" item="item" separator=","> (#{groupId},#{item}) </foreach> </insert>