MyBatis-Plus實現條件查詢的三種格式例舉詳解
常規格式
常規格式即創建一個Wrapper的實現類QueryWrapper對象,將其傳給selectList方法內部
QueryWrapper qw = new QueryWrapper(); //lt是小於,id小於5 qw.lt("id",5); List<User> users = userDao.selectList(qw); System.out.println(users);
qw中的兩個參數分別是數據庫中的字段名id,查詢的條件id<5。查詢結果:
鏈式編程格式
若是多個條件,即小於多少並且等於多少,那就要用到鏈式編程
QueryWrapper qw = new QueryWrapper(); //大於2小於5 qw.lt("id",5).gt("id",2); List<User> users = userDao.selectList(qw); System.out.println(users);
查詢結果為:
lambda格式(推薦)
lambda格式又分為兩種形式。使用時必須帶上泛型
第一種仍然是使用QueryWrapper的對象
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判定?我們後端都是接收前端傳來的數據來進行條件查詢,並不是直接給個數據。
有這麼一個情景:我們都上網買過東西吧,右上角會有一個篩選的選項,裡面會有接受的最高價和最低價,我們並不是都會去填寫這些信息,那麼這些數據後端獲取的時候就為空瞭,這時候我們就需要判。
當然我們可以使用 if 來判斷,但是這樣就不太友好。lt和gt兩個方法都有兩種不同的重載方法,我們上面使用的是第一種。
//模擬獲取前端的數據 //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);
最終結果:
到此這篇關於MyBatis-Plus實現條件查詢的三種格式例舉詳解的文章就介紹到這瞭,更多相關MyBatis-Plus條件查詢內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- MyBatisPlus超詳細分析條件查詢
- MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用詳解
- Mapper層繼承BaseMapper<T>需要引入的pom依賴方式
- mybatis plus實現條件查詢
- Mybatis-plus如何查詢表中指定字段(不查詢全部字段)