mybatis-plus分頁傳入引數後sql where條件沒有limit分頁資訊操作
折騰了差不多兩個小時,各種方法嘗試,後來想想應該是where過濾後的資料量沒有達到預設一頁規定的數量所以乾脆where就不顯示limit資訊了,試了一下還真是。。。這作者還真是把程式做的足夠智慧,可是這個智慧也讓我白白花掉了兩個小時。。。還是自己太笨了……
但是奇怪的是,如果我不設定QueryWrapper引數,where後面的分頁限制又是可以出來的。百思不得其解作者的想法。。。
具體看程式碼:
@Override public PageUtils queryPage(Map<String,Object> params) { IPage<OrderEntity> page = this.page( new Query<OrderEntity>().getPage(params),new QueryWrapper<OrderEntity>().eq(!UtilString.isNull(params.get("user_id")),"user_id",params.get("user_id")) ); return new PageUtils(page); }
記錄的目的是希望跟我一樣遇到這個特殊情況的童鞋能快速繞過這個彎,時間寶貴。晚安^.^
最後附上官方文件,希望大家多看看文件系統性的瞭解
https://mp.baomidou.com/guide/dynamic-datasource.html
補充知識:記錄逆向工程生成的mybatisplus分頁方法limit失效的坑
因為我在解決問題之前也是在網上查詢方法和官網查詢方法都有沒有解決,所以也是我寫這篇文章的原因,希望
後面的同學在開發的時候能夠少走彎路
controller層
@RequestMapping("/list") public R list(@RequestParam Map<String,Object> params){ PageUtils page = categoryService.queryPage(params); return R.ok().put("page",page); }
傳遞的引數如圖
server介面
public interface CategoryService extends IService<CategoryEntity> { PageUtils queryPage(Map<String,Object> params); }
問題及解決辦法(這是網上的辦法並沒有解決。。。。。)
然而在查詢時,分頁並沒有生效,查詢的結果是該表中的所有資料,在pom無誤的情況下,檢查有沒有把分頁攔截器注入到spring中。
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class mybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor(){ return new PaginationInterceptor(); } }
以上是在網上找的到解決辦法,我複製到專案中顯示方法是過時的,而且並不生效
後來找到問題是我的mybatisplus版本 太高了,所以不支援
這個是我maven中引用的版本
然後在網上搜索的攔截器方法
採用新的分頁方法問題就解決了
問題的關鍵是 怎麼去根本查詢問題,對我就是反思查詢問題的方法,不至於今天浪費了1,2個小時都沒有找到,就是先去官方文件.
檢視官方的例項程式碼 !!!!!!
以下是我在gitee上查詢到的逆向工程
因為專案工期非常的緊,而我拿著同事的老框架程式碼看著非常頭疼,這個時候選擇逆向工程,自己搭建一個輕量級的框架那不是爽歪歪嗎?
因為專案是採用的springcloud微服務,我負責的一個系統所以可以為所欲為。
這邊我使用的逆向工程是gitee上的人人開源網renren-generator 框架
他生成的程式碼中沒有分頁方法的攔截器,我在官網上查詢到方法也是過時的,這點是很坑的。
以上這篇mybatis-plus分頁傳入引數後sql where條件沒有limit分頁資訊操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。