oracle和mysql數據庫的批量update在mybatis中配置不太一樣:
oracle數據庫:
<update id="updatebatch" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" open="begin" close="end;" separator=";">
update table_name
<set >
<if test="item.status != null" >
status = #{item.status,jdbcType=INTEGER},
</if>
</set>
where id = #{item.id,jdbcType=BIGINT}
</foreach>
</update>
mysql數據庫:
mysql數據庫採用一下寫法即可執行,但是數據庫連接必須配置:&allowMultiQueries=true
例如:jdbc:mysql://192.168.1.232:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
<update id="updatebatch" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" open="" close="" separator=";">
update table_name
<set >
<if test="item.status != null" >
status = #{item.status,jdbcType=INTEGER},
</if>
</set>
where id = #{item.id,jdbcType=BIGINT}
</foreach>
</update>