基于mybatis-plus QueryWrapper 排序的坑
QueryWrapper排序的坑

大致可以總結(jié)成上面的兩句話。
條件構(gòu)造器QueryWrapper
我們再搞幾個(gè)實(shí)例來深入理解下條件構(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);
}案例四
查詢屬于編號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):
/**
?* 查詢屬于編號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)文章
java正則表達(dá)式對特殊字符的轉(zhuǎn)義以及異?,F(xiàn)象
這篇文章主要給大家介紹了關(guān)于java正則表達(dá)式對特殊字符的轉(zhuǎn)義以及異常現(xiàn)象的相關(guān)資料,在Java中使用正則表達(dá)式匹配特殊字符也需要使用轉(zhuǎn)義字符"\",需要的朋友可以參考下2023-06-06
Java?synchornized與ReentrantLock處理并發(fā)出現(xiàn)的錯誤
synchronized機(jī)制提供了對每個(gè)對象相關(guān)的隱式監(jiān)視器鎖,并強(qiáng)制所有鎖的獲取和釋放都必須在同一個(gè)塊結(jié)構(gòu)中。當(dāng)獲取了多個(gè)鎖時(shí),必須以相反的順序釋放。即synchronized對于鎖的釋放是隱式的2023-01-01
Java實(shí)現(xiàn)的簡單數(shù)字時(shí)鐘功能示例
這篇文章主要介紹了Java實(shí)現(xiàn)的簡單數(shù)字時(shí)鐘功能,涉及java日期時(shí)間及JFrame框架圖形界面操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-02-02
Java如何使用spire進(jìn)行word文檔的替換詳解
創(chuàng)作一份文案經(jīng)常會高頻率地使用某些詞匯,如地名、人名、人物職位等,若表述有誤,就需要整體撤換,下面這篇文章主要給大家介紹了關(guān)于Java如何使用spire進(jìn)行word文檔的替換的相關(guān)資料,需要的朋友可以參考下2023-01-01

