Mybatis plus中使用in查詢出錯如何解決
不想看我bb的直接點上面的 ‘’解決方法‘’
我的情況是這樣的,在使用mybatis plus提供的QueryWrapper方法里的in查詢時,我的參數(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ù)庫查出來的數(shù)據(jù)不一樣(這是我的情況,不知道你們會不會這樣),我看了控制臺的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
查詢錯誤原因
我就在網(wǎng)上早了一下發(fā)現(xiàn),在使用mybatis plus提供的QueryWrapper方法時,你給它的參數(shù)是String類型時,在控制臺上看著是對的,但是他會默認在參數(shù)的前面和后面加上單引號,因為在mybatis plus里的xml配置文件里(類似于UserInfoMapper.xml的文件),給的參數(shù)是用 #{參數(shù)名} 的方式
//這段代碼只是舉個例子 SELECT * FROM userinfo WHERE (user_id IN (#{ids}))
解決方法
這只是我這種情況的解決方法哦找到你要使用的對象的xml文件(類似于UserInfoMapper.xml的文件)在里面自定義sql語句代碼,給參數(shù)要用 ${參數(shù)名} 的方式,不會自定義sql語句可以去網(wǎng)上查查,網(wǎng)上有太多了,在這里我就不寫了。
//這段代碼只是舉個例子 SELECT * FROM userinfo WHERE (user_id IN (${ids}))
控制臺sql語句輸出結(jié)果
==> Preparing:SELECT * FROM fpjy_pauper_info WHERE (user_id IN (81554,5654,55948,48945)) ==> Parameters: <== Total: 4
總結(jié)
到此這篇關(guān)于Mybatis plus中使用in查詢出錯如何解決的文章就介紹到這了,更多相關(guān)Mybatis plus使用in查詢出錯內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Oracle行級觸發(fā)器的使用操作2. 數(shù)據(jù)庫Oracle9i的企業(yè)管理器簡介3. MYSQL(電話號碼,身份證)數(shù)據(jù)脫敏的實現(xiàn)4. sqlserver數(shù)據(jù)庫導(dǎo)入方法的詳細圖文教程5. MySql遠程連接的實現(xiàn)方法6. SQL Server解析/操作Json格式字段數(shù)據(jù)的方法實例7. SQL Server中的邏輯函數(shù)介紹8. DB2用戶定義函數(shù)實現(xiàn)多種語言的排序9. MySQL快速插入一億測試數(shù)據(jù)10. Sqlserver之死鎖查詢以及批量解鎖的實現(xiàn)方法
