mybatis实现数据库批量插入两种方式

一、一次插入多个对象

  <insert id="addList">
        insert into user
        (name,age,mobilephone,sex,birthday,email) values
        <foreach collection="contactInfos" item="item" open="(" close=")" separator="),(">
            #{item.name,jdbcType=VARCHAR},
            #{item.age,jdbcType=INTEGER},
            #{item.mobilephone,jdbcType=VARCHAR},
            #{item.sex,jdbcType=INTEGER},
            #{item.birthday,jdbcType=TIMESTAMP},
            #{item.email,jdbcType=VARCHAR}
        </foreach>
    </insert>
二、一次插入一个map集合,value为List

  String uid = "aaa";
  List<String> phoneList;
  List<String> emailList;
  List<Map> mapList = new ArrayList<>();
  for (int i=0; i<phoneList.size(); i++) {
    Map map = new HashMap();
    map.put("phone",phoneList.get(i));
    map.put("email",emailList.get(i));
    mapList.add(map);
  }
  contactMapper.addList(uid, mapList);
  <insert id="addList">
        insert into contact values
        <foreach collection="contactMapList" item="map" index="index" close=";" separator=",">
            (#{uid},
            #{map.phone},
            #{map.email})
        </foreach>
      </insert>
  

posted @   Mrs.Third  阅读(733)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示