mybatis的foreach標(biāo)簽語(yǔ)法報(bào)錯(cuò)的解決
foreach標(biāo)簽語(yǔ)法報(bào)錯(cuò)
開(kāi)發(fā)中因?yàn)榉奖銖?fù)制了其它的foreach標(biāo)簽,但是在執(zhí)行時(shí),一直報(bào)sql語(yǔ)法錯(cuò)誤,沒(méi)辦法自己重寫一遍foreach標(biāo)簽,
執(zhí)行成功.
但是,我還是耐心去找到問(wèn)題所在:

發(fā)現(xiàn)下面的標(biāo)簽后面有一段空字符,注意:前面帶點(diǎn)的空格位空白字符,后面兩點(diǎn)之間的空格為空字符,至于為什么復(fù)制來(lái)的標(biāo)簽為什么會(huì)帶有空字符,而且空字符也帶入了sql中,引起sql編譯報(bào)錯(cuò).這一點(diǎn)我還不太清楚,,,反正我手打不出空字符.
網(wǎng)上查了一下,說(shuō)是什么\0的時(shí)候就是空字符,但是為什么復(fù)制的時(shí)候會(huì)出現(xiàn)呢?
網(wǎng)上說(shuō)的什么去掉foreach的前后空格,在我這不太適用,這不是空格,這就是空字符.
動(dòng)態(tài)sql中foreach標(biāo)簽使用
foreach標(biāo)簽主要用于構(gòu)建in條件,他可以在sql中對(duì)集合進(jìn)行迭代。如下:
<delete id="deleteBatch">?
delete from user where id in
<foreach collection="array" item="id" index="index" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>我們假如說(shuō)參數(shù)為---- int[] ids = {1,2,3,4,5} ----那么打印之后的SQL如下:
delete form user where id in (1,2,3,4,5)
釋義:
collection:collection屬性的值有三個(gè)分別是list、array、map三種,分別對(duì)應(yīng)的參數(shù)類型為:List、數(shù)組、map集合,我在上面?zhèn)鞯膮?shù)為數(shù)組,所以值為arrayitem:表示在迭代過(guò)程中每一個(gè)元素的別名index:表示在迭代過(guò)程中每次迭代到的位置(下標(biāo))open:前綴close:后綴separator:分隔符,表示迭代時(shí)每個(gè)元素之間以什么分隔
我們通??梢詫⒅玫脚縿h除、添加等操作中。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot訪問(wèn)靜態(tài)資源css/js,你真的懂了嗎
在搭建springboot時(shí)經(jīng)常需要在html中訪問(wèn)一些靜態(tài)資源,很多朋友不清楚如何在 Spring Boot中訪問(wèn)靜態(tài)資源,本文給大家?guī)?lái)兩種解決方案,感興趣的朋友跟隨小編一起看看吧2021-05-05
springboot中mybatis多數(shù)據(jù)源動(dòng)態(tài)切換實(shí)現(xiàn)
在開(kāi)發(fā)中,動(dòng)態(tài)數(shù)據(jù)源配置還是用的比較多的,比如在多數(shù)據(jù)源使用方面,又或者是在多個(gè)DB之間切換方面。這里給出一個(gè)動(dòng)態(tài)數(shù)據(jù)源的配置方案,感興趣的可以了解一下2021-07-07
springboot項(xiàng)目接入第三方qq郵箱驗(yàn)證登錄的全過(guò)程
互聯(lián)網(wǎng)發(fā)展到現(xiàn)在,相必大家都知道發(fā)送郵件應(yīng)該是網(wǎng)站的必備功能之一,下面這篇文章主要給大家介紹了關(guān)于springboot項(xiàng)目接入第三方qq郵箱驗(yàn)證登錄的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
servlet的url-pattern匹配規(guī)則詳細(xì)描述(小結(jié))
在利用servlet或Filter進(jìn)行url請(qǐng)求的匹配時(shí),很關(guān)鍵的一點(diǎn)就是匹配規(guī)則。這篇文章主要介紹了servlet的url-pattern匹配規(guī)則詳細(xì)描述(小結(jié)),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-07-07
使用springboot開(kāi)發(fā)的第一個(gè)web入門程序的實(shí)現(xiàn)
這篇文章主要介紹了使用springboot開(kāi)發(fā)的第一個(gè)web入門程序的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
SpringCloud Eureka Provider及Consumer的實(shí)現(xiàn)
這篇文章主要介紹了SpringCloud Eureka 提供者及調(diào)用者的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10

