ibatis 批量更新(二)

 

1.情景展示

  oracle数据库中,需要根据指定字段内容调用加密程序后,根据主键id进行更新其对应的字段mindex_id的值;

  加密通过Java实现,然后通过Java对其进行更新;

  Java使用的sqlMap框架是ibatis,ibatis结合oracle如何实现批量更新?

 

2.解决方案

  sqlMap如何写?

 1 <!-- 批量更新 -->
 2 <update id="updatePRIMARY_INDEX2" parameterClass="java.util.ArrayList">
 3     UPDATE PRIMARY_INDEX2  SET MINDEX_ID =
 4     <iterate conjunction="" open="CASE ID" close="END">
 5     <![CDATA[
 6          WHEN #list[].ID# THEN #list[].MINDEX_ID#
 7     ]]>
 8     </iterate>
 9     WHERE ID IN
10     <!-- in()不能超过1000 -->
11     <iterate conjunction="," open="(" close=")">
12         #list[].ID#
13     </iterate>        
14 </update>

  相当于oracle中的

 1 UPDATE PRIMARY_INDEX2
 2    SET MINDEX_ID = CASE ID
 3                      WHEN '235886' THEN
 4                       '6'
 5                      WHEN '235885' THEN
 6                       '5'
 7                      WHEN '235884' THEN
 8                       '4'
 9                      WHEN '235883' THEN
10                       '3'
11                      WHEN '235882' THEN
12                       '2'
13                      WHEN '235881' THEN
14                       '1'
15                    END
16  WHERE ID IN ('235886', '235885', '235884', '235883', '235882', '235881');

  说明:oracle的in()函数有限制,里面的个数不能超过1000个。

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值