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

然后mapper層寫(xiě)上查詢?cè)摫頂?shù)據(jù)返回List的方法:
//查詢所有 List<User> queryUserInfo();
在service以及impl也寫(xiě)上相關(guān)方法:
//查詢所有 List<User> queryUserInfo();
@Override
public List<User> queryUserInfo() {
return userMapper.queryUserInfo();
}相關(guān)的mapper.xml就不做過(guò)多介紹了,就是一個(gè)查詢。
ok,接下來(lái)開(kāi)始使用分頁(yè)插件,配合上面的查詢實(shí)現(xiàn)分頁(yè)查詢:
在userService上添加 分頁(yè)查詢方法2個(gè):
List<User> findAllUserByPageF(int pageNum,int pageSize); PageInfo<User> findAllUserByPageS(int pageNum, int pageSize);
userServiceImpl上添加 分頁(yè)查詢實(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寫(xiě)上測(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)圖(來(lái)自DRUID):

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

