mybatis-plus QueryWrapper and or 連用并且實(shí)現(xiàn)分頁
QueryWrapper and or 連用并分頁
Page<TestEntity> rpage =
baseMapper.selectPage(
new Page<>(pageBean.getPageSize(), pageBean.getPageNum()),
new QueryWrapper<TestEntity>()
.eq("siteid", siteid)
.and(
wrapper ->
wrapper
.or()
.lt("createtime", updatetime)
.or()
.lt("deletetime", updatetime)
.or()
.lt("operatetime", updatetime)
.or()
.lt("updatetime", updatetime)));
and or 拼完后的結(jié)果是這樣的
new QueryWrapper<TestEntity>()
? ? ? ? ? ? ? ? .eq("siteid", siteid)
? ? ? ? ? ? ? ? .and(
? ? ? ? ? ? ? ? ? ? wrapper ->
? ? ? ? ? ? ? ? ? ? ? ? wrapper
? ? ? ? ? ? ? ? ? ? ? ? ? ? .or()
? ? ? ? ? ? ? ? ? ? ? ? ? ? .lt("createtime", updatetime)
? ? ? ? ? ? ? ? ? ? ? ? ? ? .or()
? ? ? ? ? ? ? ? ? ? ? ? ? ? .lt("deletetime", updatetime)
? ? ? ? ? ? ? ? ? ? ? ? ? ? .or()
? ? ? ? ? ? ? ? ? ? ? ? ? ? .lt("operatetime", updatetime)
? ? ? ? ? ? ? ? ? ? ? ? ? ? .or()
? ? ? ? ? ? ? ? ? ? ? ? ? ? .lt("updatetime", updatetime)))SELECT * FROM t WHERE useflag = 1 AND ( siteid =? AND ( createtime < ? OR deletetime < ? OR operatetime < ? OR updatetime < ?))
使用or和and的問題
最近在使用MyBatis Plus,發(fā)現(xiàn)在拼接條件的時(shí)候,and和or會(huì)出問題
比如下面這種
QueryWrapper<User> userWrapper = new QueryWrapper<User>();
userWrapper.eq("name", name);
userWrapper.eq("pwd", pwd).or().eq("phone", phone);這種寫法拼出來的SQL語句是這樣的
select * from user where (name = ? and pwd= ? or phone = ?)
這樣子是肯定不行的,于是去官網(wǎng)查詢,發(fā)現(xiàn)正確的寫法是這樣的
QueryWrapper<User> userWrapper = new QueryWrapper<User>();
userWrapper.eq("name", name);
userWrapper.and(wrapper -> wrapper.eq("pwd", pwd).or().eq("phone", phone));
select * from user where name = ? and ( pwd= ? or phone = ?)萬事大吉?。?!
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- mybatis-plus自帶QueryWrapper自定義sql實(shí)現(xiàn)復(fù)雜查詢實(shí)例詳解
- Mybatis-plus動(dòng)態(tài)條件查詢QueryWrapper的使用案例
- MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用詳解
- 基于mybatis-plus QueryWrapper 排序的坑
- mybatis-plus QueryWrapper 添加limit方式
- Mybatis-Plus 條件構(gòu)造器 QueryWrapper 的基本用法
- MyBatis-Plus實(shí)現(xiàn)2種分頁方法(QueryWrapper查詢分頁和SQL查詢分頁)
- mybatis-plus QueryWrapper自定義查詢條件的實(shí)現(xiàn)
- Mybatis-plus中QueryWrapper的多種用法小結(jié)
相關(guān)文章
基于Java創(chuàng)建XML(無中文亂碼)過程解析
這篇文章主要介紹了基于Java創(chuàng)建XML(無中文亂碼)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
SpringBoot深入探究四種靜態(tài)資源訪問的方式
這一節(jié)詳細(xì)的學(xué)習(xí)一下SpringBoot的靜態(tài)資源訪問相關(guān)的知識(shí)點(diǎn)。像這樣的知識(shí)點(diǎn)還挺多,比如SpringBoot2的Junit單元測(cè)試等等。本章我們來了解靜態(tài)資源訪問的四種方式2022-05-05
SpringBoot如何根據(jù)用戶系統(tǒng)時(shí)區(qū)動(dòng)態(tài)展示時(shí)間
這篇文章主要介紹了SpringBoot如何根據(jù)用戶系統(tǒng)時(shí)區(qū)動(dòng)態(tài)展示時(shí)間,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
MyBatis-Plus中使用EntityWrappe進(jìn)行列表數(shù)據(jù)倒序設(shè)置方式
這篇文章主要介紹了MyBatis-Plus中使用EntityWrappe進(jìn)行列表數(shù)據(jù)倒序設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
elasticsearch+logstash并使用java代碼實(shí)現(xiàn)日志檢索
這篇文章主要介紹了elasticsearch+logstash并使用java代碼實(shí)現(xiàn)日志檢索,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
Java9新特性對(duì)HTTP2協(xié)議支持與非阻塞HTTP?API
這篇文章主要為大家介紹了Java9新特性對(duì)HTTP2協(xié)議的支持與非阻塞HTTP?API,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03

