MyBatis中使用foreach循環(huán)的坑及解決
使用foreach循環(huán)的坑
我們首先看一段MyBatis中使用foreach循環(huán)的sql:
SELECT * FROM table where id in
<foreach item="item" collection="ids1" open="(" close=")" index="0" separator=",">
#{item}
</foreach>這段sql執(zhí)行會添加幾個占位符,正確寫法foreach寫到一行:
正確寫法為
SELECT * FROM table where id in
<foreach item="item" collection="ids1" open="(" close=")" index="0" separator=",">#{item}</foreach>忽現(xiàn)的Mybatis foreach失效記錄
傳進來的 list 肯定有值得,本身代碼沒有問題。 線上也算跑了大半年了。 而且出現(xiàn)的問題時也只在本機上.
mybatis.version=3.2.8
代碼:
AND (
? ?<foreach collection="list" open=" id IN (" separator="," close=")" item="id" index="index">
? ? ?#{id}
? ?</foreach>
OR (GRADE In ('0','1')
? ?AND user_type = '5'
?)
)正確結(jié)果應(yīng)該是:
AND ( id IN ('1','2','3')
? OR (GRADE In ('0', '1') AND user_type = '5')
)實際結(jié)果:
AND (?
? OR (GRADE In ('0', '1') AND user_type = '5')
)造成SQL 執(zhí)行語法錯誤.
復(fù)現(xiàn)方式:暫無復(fù)現(xiàn)方法
解決方案
隨便改了一下Dao.java的一個文件內(nèi)容(沒做實際性的內(nèi)容改動,ide 重新加載了下Dao). bug就好了. 好了 . 了...
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用FeignClient調(diào)用POST表單Body內(nèi)沒有參數(shù)問題
這篇文章主要介紹了使用FeignClient調(diào)用POST表單Body內(nèi)沒有參數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
Java中Buffer緩沖區(qū)的ByteBuffer類詳解
這篇文章主要介紹了Java中Buffer緩沖區(qū)的ByteBuffer類詳解,ByteBuffer類是Java NIO庫中的一個重要類,用于處理字節(jié)數(shù)據(jù),它提供了一種靈活的方式來讀取、寫入和操作字節(jié)數(shù)據(jù),ByteBuffer類是一個抽象類,可以通過靜態(tài)方法創(chuàng)建不同類型的ByteBuffer對象,需要的朋友可以參考下2023-10-10
java本機內(nèi)存分配Native?memory?allocation?mmap失敗問題解決
這篇文章主要介紹了java本機內(nèi)存分配Native?memory?allocation?mmap失敗問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11
spring cloud gateway集成hystrix全局斷路器操作
這篇文章主要介紹了spring cloud gateway集成hystrix全局斷路器操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
ThreadPoolExecutor參數(shù)的用法及說明
這篇文章主要介紹了ThreadPoolExecutor參數(shù)的用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
詳解Spring學(xué)習(xí)總結(jié)——Spring實現(xiàn)AOP的多種方式
這篇文章主要介紹了詳解Spring學(xué)習(xí)總結(jié)——Spring實現(xiàn)AOP的多種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01

