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.dbjr.com.cn/program/320636vi5.htm
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java 獲取HttpRequest Header的幾種方法(必看篇)
下面小編就為大家?guī)?lái)一篇java 獲取HttpRequest Header的幾種方法(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09SpringCloud?Alibaba環(huán)境集成之nacos詳解
Spring?Cloud?Alibaba提供了越來(lái)越完善的各類微服務(wù)治理組件,比如分布式服務(wù)配置與注冊(cè)中心nacos,服務(wù)限流、熔斷組件sentinel等,本篇先來(lái)介紹SpringCloud?Alibaba環(huán)境集成之nacos詳解,需要的朋友可以參考下2023-03-03Java?InputStream實(shí)戰(zhàn)之輕松讀取操作文件流
在Java中,輸入輸出是非常重要的基礎(chǔ)功能,其中,InputStream是Java中的一個(gè)重要輸入流類,用于從輸入源讀取數(shù)據(jù),下面我們就來(lái)學(xué)習(xí)一下InputStream類的相關(guān)知識(shí)吧2023-10-10Idea 搭建Spring源碼環(huán)境的超詳細(xì)教程
這篇文章主要介紹了Idea 搭建Spring源碼環(huán)境,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10Struts2中Action三種接收參數(shù)形式與簡(jiǎn)單的表單驗(yàn)證功能
本文以登錄驗(yàn)證為例,進(jìn)行代碼展示,下面給大家詳細(xì)介紹Struts2中Action三種接收參數(shù)形式與簡(jiǎn)單的表單驗(yàn)證功能,需要的朋友參考下2017-03-03用Java實(shí)現(xiàn)簡(jiǎn)單ATM機(jī)功能
這篇文章主要為大家詳細(xì)介紹了用Java實(shí)現(xiàn)簡(jiǎn)單ATM機(jī)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01基于hibernate實(shí)現(xiàn)的分頁(yè)技術(shù)實(shí)例分析
這篇文章主要介紹了基于hibernate實(shí)現(xiàn)的分頁(yè)技術(shù),結(jié)合實(shí)例形式分析了Hibernate分頁(yè)技術(shù)的原理,實(shí)現(xiàn)步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-03-03