基于mybatis-plus QueryWrapper 排序的坑
QueryWrapper排序的坑
大致可以總結(jié)成上面的兩句話。
條件構(gòu)造器QueryWrapper
我們再搞幾個實例來深入理解下條件構(gòu)造器QueryWrapper的用法:
案例一
查詢姓李的,并且出生日期范圍是1993-02-09到1994-04-09的員工
sql實現(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實現(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實現(xiàn):
SELECT * FROM t_employee WHERE NAME LIKE '李%' OR (email IS NOT NULL AND gender ='女')
mp實現(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實現(xiàn):
SELECT * FROM t_employee WHERE NAME LIKE '李%' AND (email IS NOT NULL OR gender ='女')
mp實現(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); }
案例四
查詢屬于編號1,2,3部門的并且薪水小于等于3500的員工 根據(jù)年齡從大到小排序顯示
sql實現(xiàn):
SELECT * FROM t_employee WHERE salary<=3500 AND departmentId IN (1,2,3) ORDER BY birthday ASC
mp實現(xiàn):
/** ?* 查詢屬于編號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); }
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot利用切面注解及反射實現(xiàn)事件監(jiān)聽功能
這篇文章主要介紹了springboot事件監(jiān)聽,通過利用切面、注解、反射實現(xiàn),接下來將對這幾種方式逐一說明,具有很好的參考價值,希望對大家有所幫助2022-07-07解決@Api注解不展示controller內(nèi)容的問題
這篇文章主要介紹了解決@Api注解不展示controller內(nèi)容的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。2022-01-01解決JSONObject.toJSONString()輸出null的問題
這篇文章主要介紹了解決JSONObject.toJSONString()輸出null的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02自定義spring mvc的json視圖實現(xiàn)思路解析
這篇文章主要介紹了自定義spring mvc的json視圖的實現(xiàn)思路解析,本文給大家介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下2017-12-12RocketMQ消息存儲文件的加載與恢復(fù)機制源碼分析
這篇文章主要介紹了RocketMQ源碼分析之消息存儲文件的加載與恢復(fù)機制詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05