mybatis中批量插入、批量更新

本文探讨了在MyBatis中如何进行批量插入和批量更新。在mapper.xml文件中分别展示了这两种操作的实现,并指出在service层可以通过接收返回的插入条数来判断操作是否成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、mapper.xml中批量插入

<insert id="batchInsert">
    INSERT INTO t_order(order_no, member_id, member_name, member_phone, pay_amt, create_time)
    VALUES
    <foreach collection="list" item="e" separator=",">
        (#{e.orderNo},#{e.memberId},#{e.memberName},#{e.memberPhone},#{e.payAmt},#{e.createTime})
    </foreach>
</insert>

此时在service层使用Integer接收插入的条数,根据条数进行判断

Integer rows = orderMapper.batchInsert(orderList);
if(rows !=orderList.size()){
//插入条数不等于列表中条数,抛异常,回滚
throw new Exception("批量插入订单失败!");
}

二、mapper.xml中批量更新

<update id="batchUpdate" parameterType="java.util.List">
    <foreach collection="list" item="e" index="index" open="" close="" separator=";">
        <![CDATA[
        UPDATE t_order
            set member_id = #{e.memberId},
                update_time = #{e.updateTime}
          where
            order_no = #{e.orderNo}
        ]]>
    </foreach>
</update>

此时在service层使用Integer接收插入的条数,根据条数进行判断

Integer rows = orderMapper.batchUpdate(orderList);
if(rows !=1){
//进行批量更新的时候,返回的结果永远都是1,如果不是等于1,抛异常,回滚
throw new Exception("批量更新订单失败!");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值