一般物理分頁,即通過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 ...