mybatis的foreach標(biāo)簽語法報錯的解決
foreach標(biāo)簽語法報錯
開發(fā)中因?yàn)榉奖銖?fù)制了其它的foreach標(biāo)簽,但是在執(zhí)行時,一直報sql語法錯誤,沒辦法自己重寫一遍foreach標(biāo)簽,
執(zhí)行成功.
但是,我還是耐心去找到問題所在:
發(fā)現(xiàn)下面的標(biāo)簽后面有一段空字符,注意:前面帶點(diǎn)的空格位空白字符,后面兩點(diǎn)之間的空格為空字符,至于為什么復(fù)制來的標(biāo)簽為什么會帶有空字符,而且空字符也帶入了sql中,引起sql編譯報錯.這一點(diǎn)我還不太清楚,,,反正我手打不出空字符.
網(wǎng)上查了一下,說是什么\0的時候就是空字符,但是為什么復(fù)制的時候會出現(xiàn)呢?
網(wǎng)上說的什么去掉foreach的前后空格,在我這不太適用,這不是空格,這就是空字符.
動態(tài)sql中foreach標(biāo)簽使用
foreach標(biāo)簽主要用于構(gòu)建in條件,他可以在sql中對集合進(jìn)行迭代。如下:
<delete id="deleteBatch">? delete from user where id in <foreach collection="array" item="id" index="index" open="(" close=")" separator=","> #{id} </foreach> </delete>
我們假如說參數(shù)為---- int[] ids = {1,2,3,4,5} ----那么打印之后的SQL如下:
delete form user where id in (1,2,3,4,5)
釋義:
collection
:collection屬性的值有三個分別是list、array、map三種,分別對應(yīng)的參數(shù)類型為:List、數(shù)組、map集合,我在上面?zhèn)鞯膮?shù)為數(shù)組,所以值為arrayitem
:表示在迭代過程中每一個元素的別名index
:表示在迭代過程中每次迭代到的位置(下標(biāo))open
:前綴close
:后綴separator
:分隔符,表示迭代時每個元素之間以什么分隔
我們通??梢詫⒅玫脚縿h除、添加等操作中。
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用SpringCloudApiGateway之支持Cors跨域請求
這篇文章主要介紹了使用SpringCloudApiGateway之支持Cors跨域請求的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07Springboot自帶定時任務(wù)實(shí)現(xiàn)動態(tài)配置Cron參數(shù)方式
這篇文章主要介紹了Springboot自帶定時任務(wù)實(shí)現(xiàn)動態(tài)配置Cron參數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11Java使用fill()數(shù)組填充的實(shí)現(xiàn)
這篇文章主要介紹了Java使用fill()數(shù)組填充的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01java多線程CountDownLatch與線程池ThreadPoolExecutor/ExecutorService案
這篇文章主要介紹了java多線程CountDownLatch與線程池ThreadPoolExecutor/ExecutorService案例,2021-02-02