mybatis 批量insert和批量update

首先在数据库连接的url中增加allowMultiQueries=true的配置

1、批量insert

<insert id="insertBatch" parameterType="java.util.List">
        INSERT recharge_record(
            equipment_id, 
            recharge_amount,
            user_id,
            recharge_type,
            number_of_years,
            recharge_status,
            order_no) VALUES
        <foreach collection="list" item="item" index="index" open="" close="" separator=",">
            (#{item.equipmentId},
            #{item.rechargeAmount},
            #{item.userId},
            #{item.rechargeType},
            #{item.numberOfYears},
            #{item.rechargeStatus},
            #{item.orderNo})
        </foreach>
    </insert>

2、批量update

<update id="updateBatch" parameterType="java.util.List">
     <foreach collection="list" item="item" index="index" open="" close="" separator=";">
         UPDATE equipment_info SET
         <trim suffixOverrides=",">
             <if test="item.name != null and item.name != '' ">
                 name = #{item.name},
             </if>
             <if test="item.serialNumber != null and item.serialNumber != '' ">
                 serial_number = #{item.serialNumber},
             </if>
             <if test="item.alarmNumberOne != null and item.alarmNumberOne !=''">
                 alarm_number_one = #{item.alarmNumberOne},
             </if>
             <if test="item.alarmNumberTwo != null and item.alarmNumberTwo !=''">
                 alarm_number_two = #{item.alarmNumberTwo},
             </if>
         </trim>
         WHERE id = #{item.id}
        </foreach>
    </update>

3、总结

我这里是使用最简单的方式,另外还有一种<case><when>的方式,写起来比较复杂,但是性能相对来说好一些,由于项目比较赶,所以用的最简单的方式。如果还有另外更好的方法,望不吝赐教

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值