Springboot?Mybatis使用pageHelper如何實現(xiàn)分頁查詢
Mybatis使用pageHelper實現(xiàn)分頁查詢
以下介紹實戰(zhàn)中數(shù)據(jù)庫框架使用的是mybatis,對整合mybatis此處不做介紹。
使用pageHelper實現(xiàn)分頁查詢其實非常簡單,共兩步:
- 一、導(dǎo)入依賴
- 二、添加配置
那么開始,
第一步
pom.xml添加依賴:
<!--分頁插件 pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <!-- 特別注意版本問題 --> <version>1.2.3</version> </dependency>
第二步
aplication.yml添加配置:
#分頁pageHelper pagehelper: helper-dialect: mysql reasonable: true support-methods-arguments: true
·helper-dialect:
配置使用哪種數(shù)據(jù)庫語言,不配置的話pageHelper也會自動檢測
·reasonable:
配置分頁參數(shù)合理化功能,默認是false。
#啟用合理化時,如果pageNum<1會查詢第一頁,如果pageNum>總頁數(shù)會查詢最后一頁;
#禁用合理化時,如果pageNum<1或pageNum>總頁數(shù)會返回空數(shù)據(jù)。
·params:
為了支持startPage(Object params)方法,增加了該參數(shù)來配置參數(shù)映射,用于從對象中根據(jù)屬性名取值;
可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默認值, 默認值為
pageNum=pageNum;pageSize=pageSize;count=countSql; reasonable=reasonable;pageSizeZero=pageSizeZero
·support-methods-arguments:
支持通過Mapper接口參數(shù)來傳遞分頁參數(shù)
默認值false,分頁插件會從查詢方法的參數(shù)值中
自動根據(jù)上面 params 配置的字段中取值,查找到合適的值時就會自動分頁
第三步
先將需要查詢的數(shù)據(jù)庫表建起來,簡單填充數(shù)據(jù):

然后mapper層寫上查詢該表數(shù)據(jù)返回List的方法:
//查詢所有 List<User> queryUserInfo();
在service以及impl也寫上相關(guān)方法:
//查詢所有 List<User> queryUserInfo();
@Override
public List<User> queryUserInfo() {
return userMapper.queryUserInfo();
}相關(guān)的mapper.xml就不做過多介紹了,就是一個查詢。
ok,接下來開始使用分頁插件,配合上面的查詢實現(xiàn)分頁查詢:
在userService上添加 分頁查詢方法2個:
List<User> findAllUserByPageF(int pageNum,int pageSize); PageInfo<User> findAllUserByPageS(int pageNum, int pageSize);
userServiceImpl上添加 分頁查詢實現(xiàn):
@Override
public List<User> findAllUserByPageF(int pageNum, int pageSize) {
// TODO Auto-generated method stub
PageHelper.startPage(pageNum, pageSize);
List<User> lists = userMapper.queryUserInfo();
return lists;
}
@Override
public PageInfo<User> findAllUserByPageS(int pageNum, int pageSize) {
// TODO Auto-generated method stub
PageHelper.startPage(pageNum, pageSize);
List<User> lists = userMapper.queryUserInfo();
PageInfo<User> pageInfo = new PageInfo<User>(lists);
return pageInfo;
}最后在controller寫上測試接口,
@GetMapping("/testPageHelper1")
public PageInfo<User> testPageHelper1(){
PageInfo<User> queryResult = userService.findAllUserByPageS(1, 5);
return queryResult;
}
@GetMapping("/testPageHelper2")
public List<User> testPageHelper2(){
List<User> queryResult = userService.findAllUserByPageF(1, 5);
return queryResult;
}然后用POSTMAN 分別調(diào)接口看看結(jié)果:


最后附上分別調(diào)用10次的性能分析簡圖(來自DRUID):

OK,簡單實戰(zhàn)介紹到此。
PageInfo的參數(shù)解釋,可以看看我這篇:
http://m.fzitv.net/program/320636vi5.htm
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring?cloud?實現(xiàn)房源查詢功能的實例代碼
這篇文章主要介紹了Spring?cloud?實現(xiàn)房源查詢功能,本項目是一個多模塊項目,創(chuàng)建一個 Spring Initializr 項目 不自動添加依賴項,完成創(chuàng)建后刪除自帶的src目錄,并在根目錄下創(chuàng)建新的maven模塊,需要的朋友可以參考下2022-09-09
Java中二叉樹數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)示例
這篇文章主要介紹了Java中二叉樹數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)示例,包括前中后序遍歷和求二叉樹深度的方法,需要的朋友可以參考下2015-08-08
解決websocket 報 Could not decode a text frame as UTF-8錯誤
這篇文章主要介紹了解決websocket 報 Could not decode a text frame as UTF-8錯誤,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
mybatis查詢實現(xiàn)返回List<Map>類型數(shù)據(jù)操作
這篇文章主要介紹了mybatis查詢實現(xiàn)返回List<Map>類型數(shù)據(jù)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
java實現(xiàn)excel自定義樣式與字段導(dǎo)出詳細圖文教程
最近接到一個需求,客戶不滿意原本導(dǎo)出的csv文件,想要導(dǎo)出Excel文件,下面這篇文章主要給大家介紹了關(guān)于java實現(xiàn)excel自定義樣式與字段導(dǎo)出詳細圖文教程2023-09-09
Scala可變參數(shù)列表,命名參數(shù)和參數(shù)缺省詳解
這篇文章主要介紹了Scala可變參數(shù)列表,命名參數(shù)和參數(shù)缺省詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
基于java SSM springboot實現(xiàn)抗疫物質(zhì)信息管理系統(tǒng)
這篇文章主要介紹了基于JAVA SSM springboot實現(xiàn)的抗疫物質(zhì)信息管理系統(tǒng),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08
java web開發(fā)中大量數(shù)據(jù)導(dǎo)出Excel超時(504)問題解決
開發(fā)測試時候?qū)霐?shù)據(jù)遇到大數(shù)據(jù)導(dǎo)入的問題,整理了下,需要的朋友可以參考下2017-04-04

