一、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("批量更新订单失败!");
}