1. 程式人生 > >ibatis對oracle資料庫的批量更新和批量插入的操作

ibatis對oracle資料庫的批量更新和批量插入的操作

今天有個批量的東西很是耽誤我的時間,那就是ibatis對Oracle的批量操作,雖然覺得這種批量的沒什麼,以前也有做過,但是對於mysql和oracle是不一樣的,那麼接下來我們就來介紹一下,oracle的批量操作,至於MySQL百度上面有的是。

1.批量插入:

<insert id="savePpmxNEW" parameterClass="java.util.List">
      <![CDATA[
          INSERT ALL
      ]]>
  <iterate conjunction=" ">
          into FPMX(ID,FPLXDM,FPDM,FPHM)
    values(#csList[].ID#,#csList[].FPLXDM#,#csList[].FPDM#,#list[].FPHM)
  </iterate>
  <![CDATA[
          select * from dual
      ]]>
 </insert>

這種寫法是Oracle的版本。主要是對應了Oracle批量插入資料庫的操作,其中<iterate>為迴圈迭代,對傳來的List資料進行迭代,有人說csList與Dao傳來的LIst資料名稱一致,但我發現,任意寫好像也可以,不過大家也可以注意下這一點,避免出錯。

2.批量更新:

<update id="updatePpmx" parameterClass="java.util.List">
   begin
  <iterate conjunction=";">
      update PJ_ZZSP_FPMX set
   FPLXDM=#list[].FPLXDM#,
   FPDM=#list[].FPDM#,
   FPHM=#list[].FPHM#
   where ID=#list[].ID#
  </iterate>
   ;end; 
 </update>

這種同樣也是Oracle版本,這種寫法也就不多解釋了,update語句之間用“;”隔開,首尾加上begin和end。