mybatis批量更新的两种实现方式

时间:2022-10-16 23:37:19

一:当要更新的内容是不样的

mapper.xml文件,后台传入一个对象集合,另外如果是mysql数据库,一点在配置文件上加上&allowMultiQueries=true,这样才可以执行多条sql,以下为mysql

<update id="batchUpdate" parameterType="java.util.List"> 
<foreach separator=";" index="index" item="item" collection="list" close="" open="">
update sys_group set level = #{item.level,jdbcType=INTEGER}
where group_id = #{item.groupId,jdbcType=INTEGER}
</foreach>
</update>


如果是oracle数据库则写法有不同:

<update id="batchUpdateRepayPlan" parameterType="java.util.List">
begin
<foreach separator=";" index="index" item="item" collection="list" close="" open="">
update t_ba_repay_plan
<set>
REPAY_INTEREST = #{item.interest}
</set>
where IOU_CODE = #{item.iouCode}
</foreach>
;end;
</update>




二:当更新的内容是一样的

mapper.xml文件,后台传入一个int集合,这是mysql版本

<update id="batchUpdate1" parameterType="java.util.List"> 

update sys_group set level = null where level in
<foreach separator="," index="index" item="item" collection="list" close=")" open="(">
#{item}
</foreach>

</update>

orcale版本同上。