欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis使用foreach批量插入Oracle提示命令未正確結(jié)束方式

 更新時間:2025年11月11日 08:37:55   作者:Funky_oaNiu  
文章主要討論了在Oracle和MySQL中使用foreach標(biāo)簽時的語法差異,以及foreach元素的屬性介紹,包括item、index、collection、open、separator和close等

錯誤代碼

<insert id="multiInsertTest" parameterType="java.util.List">
		INSERT INTO TEST_NWD (ID, NUM) 
		VALUES
		<foreach collection ="testList" item="test" separator ="UNION ALL">
				(#{test.ID}, #{test.NUM})
		</foreach >
	</insert>

這樣會執(zhí)行:

INSERT INTO TEST_NWD (ID, NUM)  VALUES (?,?) ,(?,?)

Oracle是不支持這種語法的,會提示SQL命令未正確結(jié)束,MySQL是支持的。

正確代碼

<insert id="multiInsertTest" parameterType="java.util.List">
		INSERT INTO TEST_NWD (ID, NUM)
		<foreach collection ="testList" item="test" separator ="UNION ALL">
			SELECT
				#{test.ID}, #{test.NUM}
			FROM dual
		</foreach >
	</insert>

1、 將VALUES去掉

2、 foreach標(biāo)簽內(nèi)的()去掉,使用select … from dual

3、 separator =","改為separator=“UNION ALL”

foreach標(biāo)簽的屬性介紹

foreach元素的屬性主要有item,index,collection,open,separator,close。 

  • item:集合中元素迭代時的別名,該參數(shù)為必選。 
  • index:在list和數(shù)組中,index是元素的序號,在map中,index是元素的key,該參數(shù)可選 
  • open:foreach代碼的開始符號,一般是(和close=")“合用。常用在in(),values()時。該參數(shù)可選 
  • separator:元素之間的分隔符,例如在in()的時候,separator=”,“會自動在元素中間用“,“隔開,避免手動輸入逗號導(dǎo)致sql錯誤,如in(1,2,)這樣。該參數(shù)可選。 
  • close: foreach代碼的關(guān)閉符號,一般是)和open=”("合用。常用在in(),values()時。該參數(shù)可選。 
  • collection: 要做foreach的對象,作為入?yún)r,List對象默認(rèn)用"list"代替作為鍵,數(shù)組對象有"array"代替作為鍵,Map對象沒有默認(rèn)的鍵。當(dāng)然在作為入?yún)r可以使用@Param(“keyName”)來設(shè)置鍵,設(shè)置keyName后,list,array將會失效。 除了入?yún)⑦@種情況外,還有一種作為參數(shù)對象的某個字段的時候。舉個例子:如果User有屬性List ids。入?yún)⑹荱ser對象,那么這個collection = “ids”.如果User有屬性Ids ids;其中Ids是個對象,Ids有個屬性List id;入?yún)⑹荱ser對象,那么collection = “ids.id”

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java求字符串長度的方法舉例

    Java求字符串長度的方法舉例

    這篇文章主要給大家介紹了關(guān)于Java求字符串長度的相關(guān)資料,Java中的字符串是一種常見的數(shù)據(jù)類型,用于表示文本數(shù)據(jù),文中給出了詳細(xì)的代碼實(shí)例,需要的朋友可以參考下
    2023-10-10
  • 重寫hashCode()和equals()方法詳細(xì)介紹

    重寫hashCode()和equals()方法詳細(xì)介紹

    這篇文章主要介紹了重寫hashCode()和equals()方法詳細(xì)介紹,涉及重寫equals()方法,重寫hashCode()方法,重寫equals()而不重寫hashCode()的風(fēng)險等相關(guān)內(nèi)容的介紹,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • SpringBoot整合Swagger教程詳解

    SpringBoot整合Swagger教程詳解

    SpringBoot是一個基于Spring框架的輕量級開源框架,它的出現(xiàn)極大地簡化了Spring應(yīng)用的搭建和開發(fā),本文將介紹如何在SpringBoot中使用Swagger來實(shí)現(xiàn)接口文檔的自動生成,感興趣的同學(xué)可以參考一下
    2023-04-04
  • 如何通過java實(shí)現(xiàn)highcharts導(dǎo)出圖片至excel

    如何通過java實(shí)現(xiàn)highcharts導(dǎo)出圖片至excel

    這篇文章主要介紹了如何通過java實(shí)現(xiàn)highcharts導(dǎo)出圖片至excel。文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,下面我們就來一起學(xué)習(xí)一下吧
    2019-06-06
  • Spring中的@CrossOrigin注冊處理方法源碼解析

    Spring中的@CrossOrigin注冊處理方法源碼解析

    這篇文章主要介紹了Spring中的@CrossOrigin注冊處理方法源碼解析,@CrossOrigin是基于@RequestMapping,@RequestMapping注釋方法掃描注冊的起點(diǎn)是equestMappingHandlerMapping.afterPropertiesSet(),需要的朋友可以參考下
    2023-12-12
  • 在springboot中攔截器Filter中注入bean失敗問題及解決

    在springboot中攔截器Filter中注入bean失敗問題及解決

    這篇文章主要介紹了在springboot中攔截器Filter中注入bean失敗問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 解決weblogic部署springboot項(xiàng)目步驟及可能會出現(xiàn)的問題

    解決weblogic部署springboot項(xiàng)目步驟及可能會出現(xiàn)的問題

    這篇文章主要介紹了解決weblogic部署springboot項(xiàng)目步驟及可能會出現(xiàn)的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java泛型類與泛型方法的定義詳解

    Java泛型類與泛型方法的定義詳解

    這篇文章主要介紹了Java泛型類與泛型方法的定義,結(jié)合實(shí)例形式詳細(xì)分析了java泛型類與泛型方法定義、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-08-08
  • java解析sina視頻

    java解析sina視頻

    本文介紹了一個java解析sina視頻地址的例子,從這個例子中可以學(xué)習(xí)到j(luò)ava使用sax解析xml的方法,大家可以參考修改成其它功能
    2014-01-01
  • SpringBoot如何訪問html和js等靜態(tài)資源配置

    SpringBoot如何訪問html和js等靜態(tài)資源配置

    這篇文章主要介紹了SpringBoot如何訪問html和js等靜態(tài)資源配置,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評論