mybatis plus in方法使用說明
如果是List類型的String,例如:List<String>這種類型的,就直接放值就可以了,本文講的是當(dāng)你查詢到的是一個(gè)list集合如何遍歷取值,否則要寫sql和接口就顯得很麻煩。
步驟如下:
//查詢到list集合List<User> userList = userService.selectById(id);//結(jié)果集List<String> resultList = new ArrayList<>();//遍歷集合取值 userList .forEach(item->{ resultList.add(item.getYouNeedId()); }); //條件構(gòu)造器in上手使用 QueryWrapper<User> qw = new QueryWrapper<>(); qw.in('you_need_id', resultList); //這里有個(gè)分頁的查詢,你也可以不用分頁,用mybatisplus里面封裝的其他方法 IPage<User> userIPage = userMapper.selectPage(page, qw); //返回查詢結(jié)果,getRecords也是mybatisplus里面封裝的方法 return contractRecordIPage.getRecords();
補(bǔ)充知識(shí):Mybatis plus中使用in查詢出錯(cuò)是怎么回事
我的情況是這樣的,在使用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ù)庫查出來的數(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)上看著是對的,但是他會(huì)默認(rèn)在參數(shù)的前面和后面加上單引號,因?yàn)樵趍ybatis plus里的xml配置文件里(類似于UserInfoMapper.xml的文件),給的參數(shù)是用 #{參數(shù)名} 的方式
//這段代碼只是舉個(gè)例子
SELECT * FROM userinfo WHERE (user_id IN (#{ids}))
解決方法
這只是我這種情況的解決方法哦
一、找到你要使用的對象的xml文件(類似于UserInfoMapper.xml的文件)在里面自定義sql語句代碼,給參數(shù)要用 ${參數(shù)名} 的方式,不會(huì)自定義sql語句可以去網(wǎng)上查查,網(wǎng)上有太多了,在這里我就不寫了。
//這段代碼只是舉個(gè)例子
SELECT * FROM userinfo WHERE (user_id IN (${ids}))
控制臺(tái)sql語句輸出結(jié)果
==> Preparing:SELECT * FROM fpjy_pauper_info WHERE (user_id IN (81554,5654,55948,48945)) ==> Parameters: <== Total: 4
二、QueryWrapper方法里的in查詢時(shí),入?yún)⒉荒苁亲址某梢粋€(gè)數(shù)組
以上這篇mybatis plus in方法使用說明就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Mysql故障排除:Starting MySQL. ERROR! Manager of pid-file quit without updating file2. DB2數(shù)據(jù)庫為單個(gè)會(huì)話鎖定技巧3. SQLite3的綁定函數(shù)族使用與其注意事項(xiàng)詳解4. 用 SQL 查詢 DB2 XML 數(shù)據(jù)(1)5. 數(shù)據(jù)庫相關(guān)的幾個(gè)技能:ACCESS轉(zhuǎn)SQL6. Windwos下MySQL 64位壓縮包的安裝方法學(xué)習(xí)記錄7. 數(shù)據(jù)庫Oracle9i的企業(yè)管理器簡介8. Delphi中的Access技巧集9. Windows下不能啟動(dòng)mysql服務(wù)--錯(cuò)誤總結(jié)10. mysql命令行客戶端結(jié)果分頁瀏覽
