Springboot?Mybatis使用pageHelper如何實現(xiàn)分頁查詢
Mybatis使用pageHelper實現(xiàn)分頁查詢
以下介紹實戰(zhàn)中數(shù)據(jù)庫框架使用的是mybatis,對整合mybatis此處不做介紹。
使用pageHelper實現(xiàn)分頁查詢其實非常簡單,共兩步:
- 一、導入依賴
- 二、添加配置
那么開始,
第一步
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也寫上相關方法:
//查詢所有 List<User> queryUserInfo();
@Override public List<User> queryUserInfo() { return userMapper.queryUserInfo(); }
相關的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)接口看看結果:
最后附上分別調(diào)用10次的性能分析簡圖(來自DRUID):
OK,簡單實戰(zhàn)介紹到此。
PageInfo的參數(shù)解釋,可以看看我這篇:
http://chabaoo.cn/program/320636vi5.htm
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Spring Boot 2.x中Actuator的一些知識點
這篇文章主要給大家介紹了關于Spring Boot 2.x中Actuator的一些知識點,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring Boot 2.x具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-09-09在Spring Boot中使用Spring-data-jpa實現(xiàn)分頁查詢
如何使用jpa進行多條件查詢以及查詢列表分頁呢?下面我將介紹兩種多條件查詢方式。具體實例代碼大家參考下本文吧2017-07-07Spring Cloud OAuth2 實現(xiàn)用戶認證及單點登錄的示例代碼
這篇文章主要介紹了Spring Cloud OAuth2 實現(xiàn)用戶認證及單點登錄的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-10-10Java的接口調(diào)用時的權限驗證功能的實現(xiàn)
這篇文章主要介紹了Java的接口調(diào)用時的權限驗證功能的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11Java中==運算符與equals方法的區(qū)別及intern方法詳解
這篇文章主要介紹了Java中==運算符與equals方法的區(qū)別及intern方法詳解的相關資料,需要的朋友可以參考下2017-04-04