mybatis-plus QueryWrapper and or 連用并且實現(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)在拼接條件的時候,and和or會出問題
比如下面這種
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 = ?)萬事大吉?。。?/p>
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- mybatis-plus自帶QueryWrapper自定義sql實現(xiàn)復雜查詢實例詳解
- Mybatis-plus動態(tài)條件查詢QueryWrapper的使用案例
- MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用詳解
- 基于mybatis-plus QueryWrapper 排序的坑
- mybatis-plus QueryWrapper 添加limit方式
- Mybatis-Plus 條件構(gòu)造器 QueryWrapper 的基本用法
- MyBatis-Plus實現(xiàn)2種分頁方法(QueryWrapper查詢分頁和SQL查詢分頁)
- mybatis-plus QueryWrapper自定義查詢條件的實現(xiàn)
- Mybatis-plus中QueryWrapper的多種用法小結(jié)
相關文章
基于Java創(chuàng)建XML(無中文亂碼)過程解析
這篇文章主要介紹了基于Java創(chuàng)建XML(無中文亂碼)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-10-10
SpringBoot深入探究四種靜態(tài)資源訪問的方式
這一節(jié)詳細的學習一下SpringBoot的靜態(tài)資源訪問相關的知識點。像這樣的知識點還挺多,比如SpringBoot2的Junit單元測試等等。本章我們來了解靜態(tài)資源訪問的四種方式2022-05-05
SpringBoot如何根據(jù)用戶系統(tǒng)時區(qū)動態(tài)展示時間
這篇文章主要介紹了SpringBoot如何根據(jù)用戶系統(tǒng)時區(qū)動態(tài)展示時間,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01
MyBatis-Plus中使用EntityWrappe進行列表數(shù)據(jù)倒序設置方式
這篇文章主要介紹了MyBatis-Plus中使用EntityWrappe進行列表數(shù)據(jù)倒序設置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
elasticsearch+logstash并使用java代碼實現(xiàn)日志檢索
這篇文章主要介紹了elasticsearch+logstash并使用java代碼實現(xiàn)日志檢索,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02
Java9新特性對HTTP2協(xié)議支持與非阻塞HTTP?API
這篇文章主要為大家介紹了Java9新特性對HTTP2協(xié)議的支持與非阻塞HTTP?API,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03

