我是靠谱客的博主 淡然季节,最近开发中收集的这篇文章主要介绍mybatis 批量入库 参数list+pojo,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

mybatis批量入库,如果参数是List,没什么好说,但有时参数是一个list+pojo,要批量插入list的值,同时还要用到pojo中某些属性,以下为几种写法:

  • 参数是数组 String[] 和 String
//java
Map<String, Object> params = new HashMap<>();
 params.put("userId", userId);
 params.put("creator", creator);
 params.put("roles", ids);  // ids为String[]
 roleMapper.saveRolesByUserId(params);

// mapper
 void saveRolesByUserId(Map<String, Object> params);
// xml
  <insert id="saveRolesByUserId" parameterType="map">
        insert ignore into user_role
        <trim prefix="(" suffix=")" suffixOverrides=",">
            user_id, role_id, add_user, add_time
        </trim>
        <trim prefix="values" suffixOverrides=",">
            <foreach collection="roles" item="roleid" index="index" separator=",">
                (#{userId},#{roleid},#{creator},now())
            </foreach>
        </trim>
    </insert>
  • 参数是List和 String
// scala
    val map1 = new util.HashMap[String,Object]()
    map1.put("brand_type",brand_name)
    map1.put("list",sonList.asJava)
    mapper.saveRecordByBrand(map1)
// mapper
void saveRecordByBrand(Map<String, Object> params);
// xml
 <insert id="saveRecordByBrand" parameterType="map">
    insert into third_dealer (id, dealer_name, phone,
    address, zbx, zby,
    brand_type, dealer_id,city)
    VALUES
    <foreach collection="list" item="item" index="index" separator="," >
      (#{item.id,jdbcType=INTEGER}, #{item.dealer_name,jdbcType=VARCHAR}, #{item.phone,jdbcType=VARCHAR},
      #{item.address,jdbcType=VARCHAR}, #{item.zbx,jdbcType=VARCHAR}, #{item.zby,jdbcType=VARCHAR},
      #{brand_type,jdbcType=VARCHAR}, #{item.dealer_id,jdbcType=INTEGER},#{item.city,jdbcType=VARCHAR})
    </foreach>
  </insert>
  • 参数是List和 pojo / 或 List 和 Map
// java
Map<String, Object> params = new HashMap<>();
params.put("list", list); 
params.put("pojo", b);  // b为pojo对象 或 map对象
m1.saveRecordByBrandPojo(params);
// mapper
void saveRecordByBrandPojo(Map<String, Object> params);
// xml
 <insert id="saveRecordByBrandPojo" parameterType="map">
    insert into third_dealer (id, dealer_name, phone,
    address, zbx, zby,
    brand_type, dealer_id,city)
    VALUES
    <foreach collection="list" item="item" index="index" separator="," >
      (#{item.id,jdbcType=INTEGER}, #{item.dealer_name,jdbcType=VARCHAR}, #{item.phone,jdbcType=VARCHAR},
      #{item.address,jdbcType=VARCHAR}, #{item.zbx,jdbcType=VARCHAR}, #{item.zby,jdbcType=VARCHAR},
      #{pojo.brand_type,jdbcType=VARCHAR}, #{item.dealer_id,jdbcType=INTEGER},#{item.city,jdbcType=VARCHAR})
    </foreach>
  </insert>

最后

以上就是淡然季节为你收集整理的mybatis 批量入库 参数list+pojo的全部内容,希望文章能够帮你解决mybatis 批量入库 参数list+pojo所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部