[转]MyBatis使用Map传参批量插入数据

参数部分 java

if(obj.getItemList() != null && obj.getItemList().size() > 0){
                            
    Map<String, Object> map = new HashMap<>();
        map.put("userId", userId);
    map.put("groupId", groupId);
        map.put("itemList", obj.getItemList());
    trendItemMapper.insertGroupAfterItemList(map);
}

MyBatis的Mapper.xml

<insert id="insertGroupAfterItemList" parameterType="java.util.Map">
    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
      SELECT LAST_INSERT_ID()
    </selectKey>
    insert into trend_item
        (trend_group_id, element_id, element_name,create_user_id,data_type)
    values
    <foreach collection="itemList" item="item" index="index" separator=",">
        (
            #{groupId},#{item.elementId},#{item.elementName},#{userId},#{item.dataType}
        )
    </foreach>
  </insert>

foreach标签解释:

foreach标签可使用的地方:例:批量删除 如 in 、批量添加

foreach标签属性: item,index,collection,open,separator,close。

item:每个遍历生成的对象。必填

index:指定一个名字,用于表示在迭代过程中,当前的迭代次数。从零开始递增。

collection:输入对象中的集合属性。必填

open:开始遍历时拼接的字符串,

separator:遍历时两个对象之间需要设置的分隔符。必填

close:结束遍历时拼接的字符串,

collection 不同情况下,该属性的值是不一样的,主要有一下3种情况:

1.如果传入的是单参数且参数类型是一个List的时候,collection属性值为list

2.如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array

3.如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map

使用批量插入执行的SQL语句应该等价于:

 insert into trend_item
        (trend_group_id, element_id, element_name,create_user_id,data_type)
 values
 (?,?,?,?,? ),(?,?,?,?,? ),(?,?,?,?,? ),(?,?,?,?,? )
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 假如需要搬一万块砖到楼顶,有一部电梯,电梯一次可以放适量的砖(最多放 500)。可以选择一次运送一块砖,也可以一次...
    Djbfifjd阅读 93,377评论 8 26
  • 随着业务需要,有时我们需要将数据批量添加到数据库,mybatis提供了将list集合循环添加到数据库的方法。具体实...
    __元昊__阅读 4,542评论 0 2
  • 批量插入 对于foreach标签的解释参考了网上的资料,具体如下:foreach的主要用在构建in条件中,它可以在...
    万物归于简阅读 5,139评论 0 0
  • 一些时候需要将一些数据批量的进行操作,比如:根据ids批量查询、更新、删除、将一个集合的数据插入数据库。简单的操作...
    旋涡_宫城阅读 355评论 0 1
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    余生动听阅读 10,912评论 0 11

友情链接更多精彩内容