首先在数据库连接的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>的方式,写起来比较复杂,但是性能相对来说好一些,由于项目比较赶,所以用的最简单的方式。如果还有另外更好的方法,望不吝赐教