mybatis的foreach標簽語法報錯的解決
foreach標簽語法報錯
開發(fā)中因為方便復制了其它的foreach標簽,但是在執(zhí)行時,一直報sql語法錯誤,沒辦法自己重寫一遍foreach標簽,
執(zhí)行成功.
但是,我還是耐心去找到問題所在:

發(fā)現(xiàn)下面的標簽后面有一段空字符,注意:前面帶點的空格位空白字符,后面兩點之間的空格為空字符,至于為什么復制來的標簽為什么會帶有空字符,而且空字符也帶入了sql中,引起sql編譯報錯.這一點我還不太清楚,,,反正我手打不出空字符.
網(wǎng)上查了一下,說是什么\0的時候就是空字符,但是為什么復制的時候會出現(xiàn)呢?
網(wǎng)上說的什么去掉foreach的前后空格,在我這不太適用,這不是空格,這就是空字符.
動態(tài)sql中foreach標簽使用
foreach標簽主要用于構(gòu)建in條件,他可以在sql中對集合進行迭代。如下:
<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:表示在迭代過程中每次迭代到的位置(下標)open:前綴close:后綴separator:分隔符,表示迭代時每個元素之間以什么分隔
我們通??梢詫⒅玫脚縿h除、添加等操作中。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用SpringCloudApiGateway之支持Cors跨域請求
這篇文章主要介紹了使用SpringCloudApiGateway之支持Cors跨域請求的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
Springboot自帶定時任務(wù)實現(xiàn)動態(tài)配置Cron參數(shù)方式
這篇文章主要介紹了Springboot自帶定時任務(wù)實現(xiàn)動態(tài)配置Cron參數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
Java使用fill()數(shù)組填充的實現(xiàn)
這篇文章主要介紹了Java使用fill()數(shù)組填充的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
java多線程CountDownLatch與線程池ThreadPoolExecutor/ExecutorService案
這篇文章主要介紹了java多線程CountDownLatch與線程池ThreadPoolExecutor/ExecutorService案例,2021-02-02

