Springboot?Mybatis使用pageHelper如何實(shí)現(xiàn)分頁查詢
Mybatis使用pageHelper實(shí)現(xiàn)分頁查詢
以下介紹實(shí)戰(zhàn)中數(shù)據(jù)庫框架使用的是mybatis,對(duì)整合mybatis此處不做介紹。
使用pageHelper實(shí)現(xiàn)分頁查詢其實(shí)非常簡(jiǎ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也會(huì)自動(dòng)檢測(cè)
·reasonable:
配置分頁參數(shù)合理化功能,默認(rèn)是false。
#啟用合理化時(shí),如果pageNum<1會(huì)查詢第一頁,如果pageNum>總頁數(shù)會(huì)查詢最后一頁;
#禁用合理化時(shí),如果pageNum<1或pageNum>總頁數(shù)會(huì)返回空數(shù)據(jù)。
·params:
為了支持startPage(Object params)方法,增加了該參數(shù)來配置參數(shù)映射,用于從對(duì)象中根據(jù)屬性名取值;
可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默認(rèn)值, 默認(rèn)值為
pageNum=pageNum;pageSize=pageSize;count=countSql; reasonable=reasonable;pageSizeZero=pageSizeZero
·support-methods-arguments:
支持通過Mapper接口參數(shù)來傳遞分頁參數(shù)
默認(rèn)值false,分頁插件會(huì)從查詢方法的參數(shù)值中
自動(dòng)根據(jù)上面 params 配置的字段中取值,查找到合適的值時(shí)就會(huì)自動(dòng)分頁
第三步
先將需要查詢的數(shù)據(jù)庫表建起來,簡(jiǎn)單填充數(shù)據(jù):

然后mapper層寫上查詢?cè)摫頂?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就不做過多介紹了,就是一個(gè)查詢。
ok,接下來開始使用分頁插件,配合上面的查詢實(shí)現(xiàn)分頁查詢:
在userService上添加 分頁查詢方法2個(gè):
List<User> findAllUserByPageF(int pageNum,int pageSize); PageInfo<User> findAllUserByPageS(int pageNum, int pageSize);
userServiceImpl上添加 分頁查詢實(shí)現(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寫上測(cè)試接口,
@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次的性能分析簡(jiǎn)圖(來自DRUID):

OK,簡(jiǎn)單實(shí)戰(zhàn)介紹到此。
PageInfo的參數(shù)解釋,可以看看我這篇:
http://www.dhdzp.com/program/320636vi5.htm
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot 2.x中Actuator的一些知識(shí)點(diǎn)
這篇文章主要給大家介紹了關(guān)于Spring Boot 2.x中Actuator的一些知識(shí)點(diǎn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot 2.x具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
在Spring Boot中使用Spring-data-jpa實(shí)現(xiàn)分頁查詢
如何使用jpa進(jìn)行多條件查詢以及查詢列表分頁呢?下面我將介紹兩種多條件查詢方式。具體實(shí)例代碼大家參考下本文吧2017-07-07
Spring Cloud OAuth2 實(shí)現(xiàn)用戶認(rèn)證及單點(diǎn)登錄的示例代碼
這篇文章主要介紹了Spring Cloud OAuth2 實(shí)現(xiàn)用戶認(rèn)證及單點(diǎn)登錄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Java的接口調(diào)用時(shí)的權(quán)限驗(yàn)證功能的實(shí)現(xiàn)
這篇文章主要介紹了Java的接口調(diào)用時(shí)的權(quán)限驗(yàn)證功能的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Java中==運(yùn)算符與equals方法的區(qū)別及intern方法詳解
這篇文章主要介紹了Java中==運(yùn)算符與equals方法的區(qū)別及intern方法詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04
通過Java 程序獲取Word中指定圖片的坐標(biāo)位置
本文介紹通過Java程序獲取Word文檔中指定圖片的坐標(biāo)位置,程序運(yùn)行環(huán)境是jdk1.8開發(fā)環(huán)境idea,通過java程序代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-05-05

