婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 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的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 通州区| 黎城县| 洛宁县| 郁南县| 罗江县| 蓬莱市| 宁强县| 蓬溪县| 湘西| 海兴县| 碌曲县| 永靖县| 会昌县| 泰和县| 石泉县| 赫章县| 上虞市| 成都市| 曲靖市| 镇宁| 清丰县| 临桂县| 永胜县| 凉城县| 阳谷县| 普兰店市| 白河县| 辽中县| 东乌珠穆沁旗| 深州市| 图木舒克市| 获嘉县| 天门市| 白城市| 遵义市| 金山区| 临澧县| 屯门区| 庄河市| 瓮安县| 安徽省|