mybatis plus in方法使用說(shuō)明
如果是List類(lèi)型的String,例如:List<String>這種類(lèi)型的,就直接放值就可以了,本文講的是當(dāng)你查詢(xún)到的是一個(gè)list集合如何遍歷取值,否則要寫(xiě)sql和接口就顯得很麻煩。
步驟如下:
//查詢(xún)到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è)分頁(yè)的查詢(xún),你也可以不用分頁(yè),用mybatisplus里面封裝的其他方法 IPage<User> userIPage = userMapper.selectPage(page, qw); //返回查詢(xún)結(jié)果,getRecords也是mybatisplus里面封裝的方法 return contractRecordIPage.getRecords();
補(bǔ)充知識(shí):Mybatis plus中使用in查詢(xún)出錯(cuò)是怎么回事
我的情況是這樣的,在使用mybatis plus提供的QueryWrapper方法里的in查詢(xún)時(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
查詢(xún)錯(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
二、QueryWrapper方法里的in查詢(xún)時(shí),入?yún)⒉荒苁亲址?,改成一個(gè)數(shù)組
以上這篇mybatis plus in方法使用說(shuō)明就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot使用YML文件進(jìn)行多環(huán)境配置的三種方法
SpringBoot通過(guò)其靈活的配置機(jī)制,使得在不同環(huán)境中管理應(yīng)用設(shè)置變得簡(jiǎn)單,尤其是使用YAML文件進(jìn)行配置,它提供了一種簡(jiǎn)潔、易讀的方式來(lái)定義應(yīng)用的配置,本文將探討在SpringBoot中使用YAML文件進(jìn)行多環(huán)境配置的三種方法,需要的朋友可以參考下2024-04-04Springboot簡(jiǎn)單熱部署實(shí)現(xiàn)步驟解析
這篇文章主要介紹了Springboot簡(jiǎn)單熱部署實(shí)現(xiàn)步驟解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12Java中基于DeferredResult的異步服務(wù)詳解
這篇文章主要介紹了Java中基于DeferredResult的異步服務(wù)詳解,DeferredResult字面意思是"延遲結(jié)果",它允許Spring MVC收到請(qǐng)求后,立即釋放(歸還)容器線(xiàn)程,以便容器可以接收更多的外部請(qǐng)求,提升吞吐量,需要的朋友可以參考下2023-12-12SpringBoot從配置文件中獲取屬性的四種方法總結(jié)
這篇文章主要介紹了SpringBoot從配置文件中獲取屬性的四種方法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02Java dom4j創(chuàng)建解析xml文檔過(guò)程解析
這篇文章主要介紹了Java dom4j創(chuàng)建解析xml文檔過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07Java中的字符流FileReader與FileWriter詳解
這篇文章主要介紹了Java中的字符流FileReader與FileWriter詳解,在Java中,使用Unicode約定存儲(chǔ)字符,字符流自動(dòng)允許我們逐字符讀/寫(xiě)數(shù)據(jù),有助于執(zhí)行16位Unicode的輸入和輸出,它是以reader和writer結(jié)尾的,需要的朋友可以參考下2023-10-10