Mybatis plus中使用in查詢出錯(cuò)如何解決
不想看我bb的直接點(diǎn)上面的 ‘’解決方法‘’
我的情況是這樣的,在使用mybatis plus提供的QueryWrapper方法里的in查詢時(shí),我的參數(shù)為類似“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類型時(shí),在控制臺(tái)上看著是對(duì)的,但是他會(huì)默認(rèn)在參數(shù)的前面和后面加上單引號(hào),因?yàn)樵趍ybatis plus里的xml配置文件里(類似于UserInfoMapper.xml的文件),給的參數(shù)是用 #{參數(shù)名} 的方式
//這段代碼只是舉個(gè)例子 SELECT * FROM userinfo WHERE (user_id IN (#{ids}))
解決方法
這只是我這種情況的解決方法哦找到你要使用的對(duì)象的xml文件(類似于UserInfoMapper.xml的文件)在里面自定義sql語(yǔ)句代碼,給參數(shù)要用 ${參數(shù)名} 的方式,不會(huì)自定義sql語(yǔ)句可以去網(wǎng)上查查,網(wǎng)上有太多了,在這里我就不寫了。
//這段代碼只是舉個(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. 什么是Access數(shù)據(jù)庫(kù)2. Delphi中的Access技巧集3. navicat導(dǎo)入oracle導(dǎo)出的dmp文件4. SQL Server中的數(shù)據(jù)類型詳解5. sqlserver數(shù)據(jù)庫(kù)導(dǎo)入方法的詳細(xì)圖文教程6. MySQL全文搜索之布爾搜索7. Oracle數(shù)據(jù)庫(kù)中SQL語(yǔ)句性能調(diào)整原則8. SQL Server全文檢索簡(jiǎn)介9. MySql分組后隨機(jī)獲取每組一條數(shù)據(jù)的操作10. DB2中的數(shù)據(jù)值加密(1)
