Mybatis批量插入

Mybatis使用系列

Mybatis批量插入

方法一

// Dao层
int batchInsert(List<User> users);

//Mapper层
<insert id="batchInsert">
insert into user (id, name, gender) values 
<foreach collection="list" item="po" separator=",">
      (#{po.id},#{po.name},#{po.gender})
    </foreach>
</insert>

这种方法可以批量插入list, 前提是id, name ,gender 每个字段都有值,且不为null, 如果有null就抛错

方法二

int batchInsert(List users);

//Mapper层

<insert id="batchInsert">
  <foreach collection="list" item="po" separator="union all">
	insert into user 
	 <trim prefix="(" suffix=")" suffixOverrides=",">
	  <if test="po.id != null">
            id,
          </if>
          <if test="po.name != null">
            name,
          </if>
          <if test="po.gender != null">
            gender,
          </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
	  <if test="po.id != null">
            #{po.id},
          </if>
          <if test="po.name != null">
            #{po.name},
          </if>
          <if test="po.gender != null">
            #{po.gender},
          </if>
        </trim>
  </foreach>
</insert>

这种方法可以批量插入list, 不再需要每一个值都非null

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值