MyBatis-Plus實(shí)現(xiàn)條件查詢的三種格式例舉詳解
常規(guī)格式
常規(guī)格式即創(chuàng)建一個(gè)Wrapper的實(shí)現(xiàn)類QueryWrapper對(duì)象,將其傳給selectList方法內(nèi)部
QueryWrapper qw = new QueryWrapper();
//lt是小于,id小于5
qw.lt("id",5);
List<User> users = userDao.selectList(qw);
System.out.println(users);
qw中的兩個(gè)參數(shù)分別是數(shù)據(jù)庫(kù)中的字段名id,查詢的條件id<5。查詢結(jié)果:

鏈?zhǔn)骄幊谈袷?/h2>
若是多個(gè)條件,即小于多少并且等于多少,那就要用到鏈?zhǔn)骄幊?/p>
QueryWrapper qw = new QueryWrapper();
//大于2小于5
qw.lt("id",5).gt("id",2);
List<User> users = userDao.selectList(qw);
System.out.println(users);
查詢結(jié)果為:

lambda格式(推薦)
lambda格式又分為兩種形式。使用時(shí)必須帶上泛型
第一種仍然是使用QueryWrapper的對(duì)象
QueryWrapper<User> qw = new QueryWrapper<User>(); //lt是小于,id小于5 qw.lambda().lt(User::getId,5); List<User> users = userDao.selectList(qw); System.out.println(users);
第二種就是直接使用LambdaQueryWrapper
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>(); //2-5,即3,4 lqw.lt(User::getId,5).gt(User::getId,2); //上面是并且,下面是或 //lqw.lt(User::getId,2).or().gt(User::getId,5); List<User> users = userDao.selectList(lqw); System.out.println(users);
條件查詢null判定
你有沒有想過為什么需要null判定?我們后端都是接收前端傳來的數(shù)據(jù)來進(jìn)行條件查詢,并不是直接給個(gè)數(shù)據(jù)。
有這么一個(gè)情景:我們都上網(wǎng)買過東西吧,右上角會(huì)有一個(gè)篩選的選項(xiàng),里面會(huì)有接受的最高價(jià)和最低價(jià),我們并不是都會(huì)去填寫這些信息,那么這些數(shù)據(jù)后端獲取的時(shí)候就為空了,這時(shí)候我們就需要判。
當(dāng)然我們可以使用 if 來判斷,但是這樣就不太友好。lt和gt兩個(gè)方法都有兩種不同的重載方法,我們上面使用的是第一種。
//模擬獲取前端的數(shù)據(jù)
//UserQuery是User的繼承類,這樣既可以模仿id的上下限
UserQuery uq = new UserQuery();
uq.setId(7);
uq.setId2(3);
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();
lqw.lt(null!=uq.getId(),User::getId, uq.getId())
.gt(null!=uq.getId2(),User::getId, uq.getId2());
List<User> users = userDao.selectList(lqw);
System.out.println(users);最終結(jié)果:

到此這篇關(guān)于MyBatis-Plus實(shí)現(xiàn)條件查詢的三種格式例舉詳解的文章就介紹到這了,更多相關(guān)MyBatis-Plus條件查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)解析.xlsb文件的示例代碼
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)解析.xlsb文件的相關(guān)方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的可以了解一下2023-01-01
springboot在filter中如何用threadlocal存放用戶身份信息
這篇文章主要介紹了springboot中在filter中如何用threadlocal存放用戶身份信息,本文章主要描述通過springboot的filter類,在過濾器中設(shè)置jwt信息進(jìn)行身份信息保存的方法,需要的朋友可以參考下2024-07-07
Java發(fā)送https請(qǐng)求并跳過ssl證書驗(yàn)證方法
最近在負(fù)責(zé)一個(gè)對(duì)接第三方服務(wù)的事情,在對(duì)接期間因?yàn)榈谌椒?wù)為https的請(qǐng)求,這篇文章主要給大家介紹了關(guān)于Java發(fā)送https請(qǐng)求并跳過ssl證書驗(yàn)證的相關(guān)資料,需要的朋友可以參考下2023-11-11
記一次線上SpringCloud Feign請(qǐng)求服務(wù)超時(shí)異常排查問題
這篇文章主要介紹了記一次線上SpringCloud Feign請(qǐng)求服務(wù)超時(shí)異常排查問題,本項(xiàng)目與下游項(xiàng)目均注冊(cè)在Eureka上面,對(duì)這個(gè)1秒就超時(shí)感到很迷惑,于是開始查閱底層源碼之旅。需要的朋友可以參考下2022-01-01
SpringBoot中使用spring-retry 解決失敗重試調(diào)用
本文主要介紹了SpringBoot中使用spring-retry 解決失敗重試調(diào)用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07

