MyBatis-Plus實現(xiàn)條件查詢的三種格式例舉詳解
常規(guī)格式
常規(guī)格式即創(chuàng)建一個Wrapper的實現(xiàn)類QueryWrapper對象,將其傳給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中的兩個參數(shù)分別是數(shù)據(jù)庫中的字段名id,查詢的條件id<5。查詢結(jié)果:
鏈式編程格式
若是多個條件,即小于多少并且等于多少,那就要用到鏈式編程
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格式又分為兩種形式。使用時必須帶上泛型
第一種仍然是使用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判定?我們后端都是接收前端傳來的數(shù)據(jù)來進行條件查詢,并不是直接給個數(shù)據(jù)。
有這么一個情景:我們都上網(wǎng)買過東西吧,右上角會有一個篩選的選項,里面會有接受的最高價和最低價,我們并不是都會去填寫這些信息,那么這些數(shù)據(jù)后端獲取的時候就為空了,這時候我們就需要判。
當然我們可以使用 if 來判斷,但是這樣就不太友好。lt和gt兩個方法都有兩種不同的重載方法,我們上面使用的是第一種。
//模擬獲取前端的數(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實現(xiàn)條件查詢的三種格式例舉詳解的文章就介紹到這了,更多相關(guān)MyBatis-Plus條件查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring?boot?Mybatis?攔截器實現(xiàn)拼接sql和修改的代碼詳解
這篇文章主要介紹了spring?boot?Mybatis?攔截器實現(xiàn)拼接sql和修改,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05jar的MANIFEST.MF配置Class-Path, java -classpath設(shè)置無效的解
這篇文章主要介紹了jar的MANIFEST.MF配置Class-Path, java -classpath設(shè)置無效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07Java使用OCR技術(shù)識別驗證碼實現(xiàn)自動化登陸方法
在本篇文章里小編給大家分享的是關(guān)于Java 如何使用 OCR 技術(shù)識別驗證碼實現(xiàn)自動化登陸的相關(guān)知識點內(nèi)容,需要的朋友們學習下。2019-08-08SpringBoot使用Minio進行文件存儲的實現(xiàn)
本文主要介紹了SpringBoot使用Minio進行文件存儲的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07