Mybatis Plus 自定義方法實現分頁

2021-09-25 22:15:20 字數 1712 閱讀 9554

一般物理分頁,即通過sql語句分頁,都是在sql語句後面新增limit分頁語句,在xml檔案裡傳入分頁的引數,再多配置一條sql,用於查詢總數:

select count(*) from student

這樣可以實現分頁,但是每條sql都這樣寫,很冗餘,而且不好維護,所以高階一點的方式就是自定義的乙個***,攔截所有需要分頁的查詢語句,並且利用獲取到的分頁相關引數統一在sql語句後面加上limit分頁的相關語句,一勞永逸,不需要再每條語句都配置一下,***具體怎麼實現不說了,因為mybatis plus 已經有類似這樣乙個***的分頁外掛程式,利用這個分頁外掛程式,不需要自己寫***就可以輕鬆實現分頁查詢:

mybatis-plus(簡稱mp)是乙個 mybatis 的增強工具,在 mybatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。

1、 新增mybatis-plus

com.baomidou

mybatis-plus

2.1.8

2、配置***

import com.baomidou.mybatisplus.plugins.paginationinterceptor;    

import org.springframework.context.annotation.bean;

import org.springframework.context.annotation.configuration;

/**

* mybatis-plus配置

*

*/

@configuration

public class mybatisplusconfig

}

3、service實現

傳統的查詢方式:

select *

from sys_user

where (name='張三' and ***=0 and age between '18' and '50')

limit 0,10

利用 mybtis-plus,可以輕鬆實現分頁查詢

// 分頁查詢 10 條姓名為『張三』、性別為男,且年齡在18至50之間的使用者記錄

new page(1, 10),

.eq("***", 0)

.between("age", "18", "50")

)

以上是單錶查詢的分頁實現,多表查詢,或者比較複雜的查詢語句也可以輕鬆實現:

public pageselectuserpage(pagepage, integer state)
/**

* * 查詢 : 根據state狀態查詢使用者列表,分頁顯示* *

* @param page

* 翻頁物件,可以作為 xml 引數直接使用,傳遞引數 page 即自動分頁

* @param state

* 狀態

* @return

*/listselectuserlist(pagination page, integer state);

} select * from user where state=#

注意:一定要傳遞page引數,否則不能實現分頁,查詢sql 可以是多表聯合查詢的複雜語句。

MyBatis Plus 自定義sql語句

一 引言 mp自帶的條件構造器雖然很強大,有時候也避免不了寫稍微複雜一點業務的sql,那麼那麼今天說說mp怎麼自定義sql語句吧。二 配置 自定義的sql當然是寫在xml檔案中的啦,那麼首先來定義xml檔案的位置,在yml配置檔案如下 mybatis plus 三 具體實現 使用註解實現 authe...

MyBatisPlus系列九 自定義全域性操作

int deleteall 自定義全域性操作 public class mysqlinjector extends autosqlinjector 3 在 mybatisplus 全域性策略中,配置自定義注入器。測試 test public void testmysqlinjector 控制台輸出 ...

Mybatis plus 自定義ID生成器

雪花演算法生成唯一的有序的序列號 public class snowflakeutils if machineid max machine num machineid 0 this datacenterid datacenterid this machineid machineid 產生下乙個id ...