1. 程式人生 > >mybatis oracle下不同表空間表名重複與批量刪除,新增

mybatis oracle下不同表空間表名重複與批量刪除,新增

mybatis自動生成中會遇到oracle不同表空間中有相同的表明,錯誤提示讓你選擇指定表空間 需要在生成的xml中新增指定的表空間使用者名稱就可以了

<!--   tableName="你要生成的資料庫表名" -->
<table schema="c##train" tableName="YY_GETPARTS"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false"
></table>

下面說oracle mybatis批量更新 網上查到的方法基本都是mysql的   在oracel上使用會提示sql語句沒有正確結束

後來找到原因oracle不支援 insert    values  () () ()  多個value這種寫法

<insert id="addSupCity" parameterType="java.util.List">
      INSERT INTO T_OCL_SUPCITY
  (CITY_ID,CITY_CODE, CITY_NAME, AREA_DESC, SUP_ID, STAT)
SELECT  A.*
FROM(
<foreach collection="list" item="item" index="index" separator="UNION ALL">
 SELECT 
       #{item.cityCode,jdbcType=VARCHAR} CITY_CODE,
       #{item.cityName,jdbcType=VARCHAR} CITY_NAME,
       #{item.areaDesc,jdbcType=VARCHAR} AREA_DESC,
       #{item.supId,jdbcType=VARCHAR} SUP_ID,
       #{item.stat,jdbcType=VARCHAR} STAT
     FROM dual
   </foreach>
   )A
  </insert>

通過select from dual  與UNION ALL來進行批量插入