基于mybatis-plus QueryWrapper 排序的坑
更新時間:2022年01月30日 10:06:15 作者:summer_wu
這篇文章主要介紹了mybatis-plus QueryWrapper 排序的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
QueryWrapper排序的坑

大致可以總結成上面的兩句話。
條件構造器QueryWrapper
我們再搞幾個實例來深入理解下條件構造器QueryWrapper的用法:
案例一
查詢姓李的,并且出生日期范圍是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 '李%'
mp實現:
/**
* 查詢姓李的,并且出生日期范圍是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實現:
SELECT * FROM t_employee WHERE NAME LIKE '李%' OR (email IS NOT NULL AND gender ='女')
mp實現:
/**
?* 查詢姓李的或者郵箱不為空并且是女性的員工
?* 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實現:
SELECT * FROM t_employee WHERE NAME LIKE '李%' AND (email IS NOT NULL OR gender ='女')
mp實現:
/**
?* 查詢姓李的并且郵箱不為空或者是女性的員工
?* 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的員工 根據年齡從大到小排序顯示
sql實現:
SELECT * FROM t_employee WHERE salary<=3500 AND departmentId IN (1,2,3) ORDER BY birthday ASC
mp實現:
/**
?* 查詢屬于編號1,2,3部門的并且薪水小于等于3500的員工 根據年齡從大到小排序顯示
?* 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);
}以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java?synchornized與ReentrantLock處理并發(fā)出現的錯誤
synchronized機制提供了對每個對象相關的隱式監(jiān)視器鎖,并強制所有鎖的獲取和釋放都必須在同一個塊結構中。當獲取了多個鎖時,必須以相反的順序釋放。即synchronized對于鎖的釋放是隱式的2023-01-01

