闲来记录下mybatis的批量操作,写法很简单,mapper中的方法传入一个list,然后xml里循环就好;
注意点:
循环的list一次过千可能有问题,需要分批次执行,这里以批量修改为例,以前好像遇到过批量新增时候,id数量限制,好像是160(忘记具体原因了),总之批量操作注意数量问题。解决方法:看下面的例子
还有就是,批量操作的时候,获取集合的某一个属性,不需要单独去建一个单个属性的list,可以把对象list传入后,直接用.(点)获取相应属性(例子中倒数第四行)
代码如下:
<update id="对应的方法名">
update 表
set STATUS = #{status}
where ORG_CODE = #{orgCode}
and OUTPATIENT_CODE in
<trim suffixOverrides=" OR OUTPATIENT_CODE IN ()">
<foreach item="tlybMzjs" index="index" collection="对应的list"
open="(" close=")">
<if test="index != 0">
<choose>
<when test="index % 1000 == 999">) OR OUTPATIENT_CODE IN (</when>
<otherwise>,</otherwise>
</choose>
</if>
#{tlybMzjs.outpatientCode}
</foreach>
</trim>
</update>