zoukankan      html  css  js  c++  java
  • 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个。

    写在最后

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

     相关推荐:

  • 相关阅读:
    pam_cracklib module
    转:ubuntu svn
    fw: subversion+apache config
    转:jenkins 简介
    fw:java 10大必知技术
    FW: Linux 搭建 csvn 服务器。
    转:修改svn 端口号
    转:Ubuntu搭建jenkins
    转:vmware workstation的三种网络连接方式。
    图像处理之直方图均衡
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/10066430.html
Copyright © 2011-2022 走看看