校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > oracle+mybatis 使用動態Sql當插入字段不確定的情況下實現批量insert

oracle+mybatis 使用動態Sql當插入字段不確定的情況下實現批量insert

熱門標簽:山東crm外呼系統軟件 慧營銷crm外呼系統丹丹 圖吧網站地圖標注 哈爾濱電話機器人銷售招聘 愛客外呼系統怎么樣 哪個400外呼系統好 開發外呼系統 百度地圖標注途經點 地圖標注養老院

最近做項目遇到一個挺糾結的問題,由于業務的關系,DB的數據表無法確定,在使用過程中字段可能會增加,這樣在insert時給我造成了很大的困擾。

先來看一下最終我是怎么實現的:

insert id="batchInsertLine" parameterType="HashMap"> 
   ![CDATA[ 
   INSERT INTO tg_fcst_lines(${lineColumn}) 
   select result.*,sq_fcst_lines.nextval from( 
   ]]> 
   foreach collection="lineList" item="item" index="index" separator="union all" > 
    (select   
    foreach collection="item" index="key" item="_value" separator=","> 
      #{_value} 
    /foreach>  
    from dual) 
   /foreach> 
   ![CDATA[) result]]>   
 /insert> 

由于數據表不確定,所以我無法確定我要insert的字段,由于是批量insert,確定value值也挺費勁。
我傳給mybatis的參數是一個map:

Map insertMap = new HashMap(); 
insertMap.put("lineColumn",lineColumn);    
insertMap.put("lineList", lineList); 

lineColumn是一個字符串,lineList是一個list:

ListMap> lineList = new ArrayList(); 

lineList里存放的是map,map的鍵對應數據表的字段,值是你要insert的值,這樣就可以通過foreach取出list的值作為insert語句的value,但由于map是無序的,存放的順序和
遍歷時取值的順序不一定一致,所以為了確保insert字段和值可以一一對應,可以通過遍歷一次map來取出key拼接一個字符串作為insert的字段

String lineColumn = "";  //拼接的SQL,作為insert語句的一部分 
[java] view plaincopy
MapString,String> lineMap = lineList.get(0); 
for (String key : lineMap.keySet()) { 
  lineColumn +=key+","; 
} 
lineColumn +="LINE_ID"; 

這里的line)id是一個自增的字段,在語句中直接寫序列會報錯,所以先遍歷list將取出的值作為result,在取出result的所有值,連同序列一起作為insert的值。

在取值的時候使用兩個foreace嵌套來實現,外層的foreach遍歷list,里層的foreach遍歷map。

以上內容是本文給大家介紹的oracle+mybatis 使用動態Sql當插入字段不確定的情況下實現批量insert的全部敘述,希望大家喜歡。

您可能感興趣的文章:
  • MyBatis 動態拼接Sql字符串的問題
  • mybatis的動態sql詳解(精)
  • MyBatis 執行動態 SQL語句詳解
  • Mybatis動態SQL之if、choose、where、set、trim、foreach標記實例詳解
  • mybatis動態sql之Map參數的講解
  • MyBatis動態Sql之if標簽的用法詳解
  • MyBatis執行動態SQL的方法
  • Mybatis中動態SQL,if,where,foreach的使用教程詳解
  • Mybatis模糊查詢和動態sql語句的用法
  • Mybatis 動態SQL搭建環境的全過程

標簽:武漢 承德 青島 開封 甘肅 和田 固原 周口

巨人網絡通訊聲明:本文標題《oracle+mybatis 使用動態Sql當插入字段不確定的情況下實現批量insert》,本文關鍵詞  oracle+mybatis,使用,動態,Sql,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《oracle+mybatis 使用動態Sql當插入字段不確定的情況下實現批量insert》相關的同類信息!
  • 本頁收集關于oracle+mybatis 使用動態Sql當插入字段不確定的情況下實現批量insert的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 阜阳市| 凭祥市| 天门市| 广安市| 安康市| 揭东县| 武宁县| 濮阳县| 衡东县| 玉屏| 安顺市| 页游| 青田县| 从江县| 永兴县| 宣汉县| 永嘉县| 丰都县| 从化市| 绥中县| 赣州市| 佛冈县| 洛南县| 岚皋县| 宝应县| 东乌珠穆沁旗| 平顶山市| 琼海市| 大庆市| 维西| 淄博市| 河北省| 哈密市| 河池市| 板桥市| 澎湖县| 防城港市| 西乡县| 湖口县| 镇沅| 石景山区|