<insert id="updateStatusBatch" parameterClass="hashMap">
update
Question
set
status = #status#
<dynamic prepend="where questionId in">
<isNotNull property="actionIds">
<iterate property="actionIds" open="(" close=")" conjunction=",">
#actionIds[]#
</iterate>
</isNotNull>
</dynamic>
</insert>
上面的解析成sql就是
update Question set status = "OK" where questionId in(1,2,3,4,5...)
到网上找了很多ibatis批量更新的例子,基本上都是这样,我心想难道他们做的项目中只遇到这种把in中的id的status全部更新为同一个值吗,如果每个id对应的status不同呢,怎么做,难道把sql全部放到iterate中吗,这样和for循环没什么区别,郁闷中。。。
小弟不才,刚接触ibatis,想请问ibatis是怎样做批量增改的,
PS:只是单独的ibatis项目,不和spring集成