基于mybatis-plus QueryWrapper 排序的坑
QueryWrapper排序的坑
大致可以總結(jié)成上面的兩句話。
條件構(gòu)造器QueryWrapper
我們?cè)俑銕讉€(gè)實(shí)例來(lái)深入理解下條件構(gòu)造器QueryWrapper的用法:
案例一
查詢姓李的,并且出生日期范圍是1993-02-09到1994-04-09的員工
sql實(shí)現(xiàn):
SELECT * FROM t_employee WHERE DATE_FORMAT(birthday,'%Y-%m-%d')>='1993-02-09' AND DATE_FORMAT(birthday,'%Y-%m-%d')<='1994-04-09' AND NAME LIKE '李%'
mp實(shí)現(xiàn):
/** * 查詢姓李的,并且出生日期范圍是1993-02-09到1994-04-09的員工 * sql:SELECT * FROM t_employee WHERE DATE_FORMAT(birthday,'%Y-%m-%d')>='1993-02-09' AND DATE_FORMAT(birthday,'%Y-%m-%d')<='1994-04-09' AND NAME LIKE '李%' */ @Test public void selectByQueryWrapper3(){ QueryWrapper<Employee> queryWrapper=new QueryWrapper(); // QueryWrapper<Employee> queryWrapper2=Wrappers.<Employee>query(); queryWrapper.apply("DATE_FORMAT(birthday,'%Y-%m-%d')>={0} and DATE_FORMAT(birthday,'%Y-%m-%d')<={1}","1993-02-09","1994-04-09").likeRight("name","李"); List<Employee> employeeList = employeeMapper.selectList(queryWrapper); System.out.println(employeeList); }
案例二
查詢姓李的或者郵箱不為空并且是女性的員工
sql實(shí)現(xiàn):
SELECT * FROM t_employee WHERE NAME LIKE '李%' OR (email IS NOT NULL AND gender ='女')
mp實(shí)現(xiàn):
/** ?* 查詢姓李的或者郵箱不為空并且是女性的員工 ?* sql:SELECT * FROM t_employee WHERE NAME LIKE '李%' OR (email IS NOT NULL AND gender ='女') ?*/ @Test public void selectByQueryWrapper4(){ ? QueryWrapper<Employee> queryWrapper=new QueryWrapper(); ? // QueryWrapper<Employee> queryWrapper2=Wrappers.<Employee>query(); ? queryWrapper.likeRight("name","李").or(wq->wq.isNotNull("email").eq("gender","女")); ? List<Employee> employeeList = employeeMapper.selectList(queryWrapper); ? System.out.println(employeeList); }
案例三
查詢姓李的并且郵箱不為空或者是女性的員工
sql實(shí)現(xiàn):
SELECT * FROM t_employee WHERE NAME LIKE '李%' AND (email IS NOT NULL OR gender ='女')
mp實(shí)現(xiàn):
/** ?* 查詢姓李的并且郵箱不為空或者是女性的員工 ?* sql:SELECT * FROM t_employee WHERE NAME LIKE '李%' AND (email IS NOT NULL OR gender ='女') ?*/ @Test public void selectByQueryWrapper5(){ ? QueryWrapper<Employee> queryWrapper=new QueryWrapper(); ? // QueryWrapper<Employee> queryWrapper2=Wrappers.<Employee>query(); ? queryWrapper.likeRight("name","李").and(wq->wq.isNotNull("email").or().eq("gender","女")); ? List<Employee> employeeList = employeeMapper.selectList(queryWrapper); ? System.out.println(employeeList); }
案例四
查詢屬于編號(hào)1,2,3部門的并且薪水小于等于3500的員工 根據(jù)年齡從大到小排序顯示
sql實(shí)現(xiàn):
SELECT * FROM t_employee WHERE salary<=3500 AND departmentId IN (1,2,3) ORDER BY birthday ASC
mp實(shí)現(xiàn):
/** ?* 查詢屬于編號(hào)1,2,3部門的并且薪水小于等于3500的員工 根據(jù)年齡從大到小排序顯示 ?* sql:SELECT * FROM t_employee WHERE salary<=3500 AND departmentId IN (1,2,3) ORDER BY birthday ASC ?*/ @Test public void selectByQueryWrapper6(){ ? QueryWrapper<Employee> queryWrapper=new QueryWrapper(); ? // QueryWrapper<Employee> queryWrapper2=Wrappers.<Employee>query(); ? queryWrapper.likeRight("name","李").and(wq->wq.isNotNull("email").or().eq("gender","女")); ? List<Employee> employeeList = employeeMapper.selectList(queryWrapper); ? System.out.println(employeeList); }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot利用切面注解及反射實(shí)現(xiàn)事件監(jiān)聽(tīng)功能
這篇文章主要介紹了springboot事件監(jiān)聽(tīng),通過(guò)利用切面、注解、反射實(shí)現(xiàn),接下來(lái)將對(duì)這幾種方式逐一說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助2022-07-07Java中實(shí)現(xiàn)WebSocket方法詳解
這篇文章主要介紹了Java中實(shí)現(xiàn)WebSocket方法詳解,WebSocket?是一種新型的網(wǎng)絡(luò)協(xié)議,它允許客戶端和服務(wù)器之間進(jìn)行雙向通信,可以實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)交互,需要的朋友可以參考下2023-07-07解決@Api注解不展示controller內(nèi)容的問(wèn)題
這篇文章主要介紹了解決@Api注解不展示controller內(nèi)容的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。2022-01-01解決JSONObject.toJSONString()輸出null的問(wèn)題
這篇文章主要介紹了解決JSONObject.toJSONString()輸出null的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02自定義spring mvc的json視圖實(shí)現(xiàn)思路解析
這篇文章主要介紹了自定義spring mvc的json視圖的實(shí)現(xiàn)思路解析,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-12-12Java redisTemplate阻塞式處理消息隊(duì)列
用redis中的List可以實(shí)現(xiàn)隊(duì)列,這樣可以用來(lái)做消息處理和任務(wù)調(diào)度的隊(duì)列。因此,本文將主要為大家介紹如何利用redisTemplate處理消息隊(duì)列,感興趣的小伙伴可以了解一下2021-12-12RocketMQ消息存儲(chǔ)文件的加載與恢復(fù)機(jī)制源碼分析
這篇文章主要介紹了RocketMQ源碼分析之消息存儲(chǔ)文件的加載與恢復(fù)機(jī)制詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05