Mybatis plus中使用in查詢出錯(cuò)如何解決
不想看我bb的直接點(diǎn)上面的 ‘’解決方法‘’
我的情況是這樣的,在使用mybatis plus提供的QueryWrapper方法里的in查詢時(shí),我的參數(shù)為類(lèi)似“1,2,3,4”這樣的字符串
//要查的參數(shù) String masterIds = '81554,5654,55948,48945'; QueryWrapper<FpjyPauperInfo> pauperqw = new QueryWrapper<>(); pauperqw.in('user_id',masterIds);UserInfoService.list(pauperqw);
結(jié)果返回的數(shù)據(jù)與在數(shù)據(jù)庫(kù)查出來(lái)的數(shù)據(jù)不一樣(這是我的情況,不知道你們會(huì)不會(huì)這樣),我看了控制臺(tái)的sql代碼
==> Preparing:SELECT user_id,user_name,update_job_dt,group_name,create_dt,create_by,update_dt,update_by FROM fpjy_pauper_info WHERE (user_id IN (?)) ==> Parameters: 81554,5654,55948,48945(String)<== Total: 0
查詢錯(cuò)誤原因
我就在網(wǎng)上早了一下發(fā)現(xiàn),在使用mybatis plus提供的QueryWrapper方法時(shí),你給它的參數(shù)是String類(lèi)型時(shí),在控制臺(tái)上看著是對(duì)的,但是他會(huì)默認(rèn)在參數(shù)的前面和后面加上單引號(hào),因?yàn)樵趍ybatis plus里的xml配置文件里(類(lèi)似于UserInfoMapper.xml的文件),給的參數(shù)是用 #{參數(shù)名} 的方式
//這段代碼只是舉個(gè)例子 SELECT * FROM userinfo WHERE (user_id IN (#{ids}))
解決方法
這只是我這種情況的解決方法哦找到你要使用的對(duì)象的xml文件(類(lèi)似于UserInfoMapper.xml的文件)在里面自定義sql語(yǔ)句代碼,給參數(shù)要用 ${參數(shù)名} 的方式,不會(huì)自定義sql語(yǔ)句可以去網(wǎng)上查查,網(wǎng)上有太多了,在這里我就不寫(xiě)了。
//這段代碼只是舉個(gè)例子 SELECT * FROM userinfo WHERE (user_id IN (${ids}))
控制臺(tái)sql語(yǔ)句輸出結(jié)果
==> Preparing:SELECT * FROM fpjy_pauper_info WHERE (user_id IN (81554,5654,55948,48945)) ==> Parameters: <== Total: 4
總結(jié)
到此這篇關(guān)于Mybatis plus中使用in查詢出錯(cuò)如何解決的文章就介紹到這了,更多相關(guān)Mybatis plus使用in查詢出錯(cuò)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. SQL Server 2005數(shù)據(jù)加密技術(shù)應(yīng)用研究2. MySQL Flink Watermark實(shí)現(xiàn)事件時(shí)間處理的關(guān)鍵技術(shù)3. idea連接sql sever2019圖文教程(超詳細(xì))4. Mysql獲取指定時(shí)間范圍數(shù)據(jù)的各種實(shí)例5. SQL Server補(bǔ)丁版本的檢查和安裝過(guò)程中常見(jiàn)問(wèn)題6. MySql中 is Null段判斷無(wú)效和IFNULL()失效的解決方案7. MySQL性能壓力基準(zhǔn)測(cè)試工具sysbench的使用簡(jiǎn)介8. MySQL 參數(shù)相關(guān)概念及查詢更改方法9. debian10 mariadb安裝過(guò)程詳解10. Oracle如何在SQL語(yǔ)句中對(duì)時(shí)間操作、運(yùn)算
