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>

原文地址:https://www.cnblogs.com/xiaozhang666/p/13725263.html