Spring Boot中整合PageHelper實(shí)現(xiàn)分頁功能詳細(xì)步驟
1.前言
在開發(fā)web應(yīng)用程序時(shí),經(jīng)常會(huì)遇到需要對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分頁查詢的情況。為了簡化分頁查詢的實(shí)現(xiàn)過程,我們可以利用PageHelper這個(gè)優(yōu)秀的分頁插件來實(shí)現(xiàn)分頁功能。本文將介紹如何在Spring Boot項(xiàng)目中整合PageHelper,并演示如何使用它來實(shí)現(xiàn)分頁功能。
2.添加依賴
首先,在你的Spring Boot項(xiàng)目中的pom.xml
文件中添加PageHelper的依賴
<!-- PageHelper分頁查詢的依賴--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.4.6</version> </dependency>
3.聲明一個(gè)統(tǒng)一返回類
@Data @NoArgsConstructor @AllArgsConstructor public class PageBean<T> { private int total;//總記錄數(shù) private List<T> items;//數(shù)據(jù)列表 }
4.使用PageHelper實(shí)現(xiàn)分頁查詢
接下來,我將演示如何在Service層中使用PageHelper來實(shí)現(xiàn)分頁查詢。假設(shè)我們有一個(gè)UserService
來處理用戶信息的查詢,我們可以按照以下步驟來實(shí)現(xiàn)分頁功能:
@Override public PageBean<Article> getPageArticle(Integer pageNum, Integer pageSize, String categoryId, String state) { //1.創(chuàng)建PageBean用于封裝查詢好的數(shù)據(jù) PageBean<Article> pageBean = new PageBean<>(); //2.開啟分頁查詢 //開啟后PageHelper在底層,會(huì)攔截查詢前的SQL語句,在其后面加上類似LIMIT等數(shù)據(jù)庫特定的分頁語句 PageHelper.startPage(pageNum, pageSize); //3.調(diào)用數(shù)據(jù)層查詢含條件的,pageHelper自動(dòng)拼接sql語句 //獲得創(chuàng)建人id Map<String,Object> map = ThreadLocalUtil.get(); Integer userId = (Integer) map.get("id"); List<Article> articles = articleDao.getPageArticle(userId,categoryId,state); //Page中提供方法,可以獲取PageHelper分頁查詢后 得到總記錄條數(shù)和當(dāng)前數(shù)據(jù) Page<Article> p = (Page<Article>) articles;//如果不強(qiáng)轉(zhuǎn)的話多態(tài)是不允許父類類型調(diào)用子類特有的方法的 //把數(shù)據(jù)填充到pageBean中 pageBean.setTotal(p.getPages()); pageBean.setItems(p.getResult()); return pageBean; }
這里把返回結(jié)果List前傳成Page就是因?yàn)槎鄳B(tài)的弊端,無法調(diào)用子類特有的方法,Page是List的實(shí)現(xiàn)類所以說要調(diào)用Page的getPages()和getResult()來獲取條數(shù)和數(shù)據(jù)集合,就需要強(qiáng)轉(zhuǎn)。
還有一點(diǎn)要注意的就是,當(dāng)我開啟分頁查詢 PageHelper.startPage(pageNum, pageSize);Pagehelper會(huì)用Aop的思想幫我們自動(dòng)在此方法執(zhí)行的sql中拼接一個(gè)limit子句。
5.總結(jié)
至此,我們已經(jīng)完成了在Spring Boot項(xiàng)目中整合PageHelper并實(shí)現(xiàn)分頁查詢功能的全部步驟。通過以上配置和代碼,我們可以輕松地實(shí)現(xiàn)數(shù)據(jù)庫分頁查詢,提高了開發(fā)效率并改善了用戶體驗(yàn)。
希望本文能夠?qū)δ阌兴鶐椭?,祝你在Spring Boot項(xiàng)目中順利實(shí)現(xiàn)分頁功能!
到此這篇關(guān)于如何在Spring Boot中整合PageHelper實(shí)現(xiàn)分頁功能的文章就介紹到這了,更多相關(guān)Spring Boot PageHelper分頁內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- springboot集成PageHelper分頁失效的原因及解決
- SpringBoot整合PageHelper實(shí)現(xiàn)分頁查詢功能詳解
- springboot?+mybatis?使用PageHelper實(shí)現(xiàn)分頁并帶條件模糊查詢功能
- SpringBoot+Mybatis分頁插件PageHelper實(shí)現(xiàn)分頁效果
- SpringBoot項(xiàng)目中分頁插件PageHelper無效的問題及解決方法
- SpringBoot整合mybatis結(jié)合pageHelper插件實(shí)現(xiàn)分頁
- Spring Boot+Mybatis+Pagehelper分頁實(shí)現(xiàn)
相關(guān)文章
SpringCloud通過MDC實(shí)現(xiàn)分布式鏈路追蹤
在DDD領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)中,我們使用SpringCloud來去實(shí)現(xiàn),但排查錯(cuò)誤的時(shí)候,通常會(huì)想到Skywalking,但是引入一個(gè)新的服務(wù),增加了系統(tǒng)消耗和管理學(xué)習(xí)成本,對(duì)于大型項(xiàng)目比較適合,但是小的項(xiàng)目顯得太過臃腫了,所以本文介紹了SpringCloud通過MDC實(shí)現(xiàn)分布式鏈路追蹤2024-11-11javaBean的基礎(chǔ)知識(shí)及常見亂碼解決方法
這篇文章主要介紹了javaBean的基礎(chǔ)知識(shí)及常見亂碼解決方法的相關(guān)資料,需要的朋友可以參考下2017-03-03Java使用DateUtils對(duì)日期進(jìn)行數(shù)學(xué)運(yùn)算經(jīng)典應(yīng)用示例【附DateUtils相關(guān)包文件下載】
這篇文章主要介紹了Java使用DateUtils對(duì)日期進(jìn)行數(shù)學(xué)運(yùn)算的方法,可實(shí)現(xiàn)針對(duì)日期時(shí)間的各種常見運(yùn)算功能,并附帶DateUtils的相關(guān)包文件供讀者下載使用,需要的朋友可以參考下2017-11-11spring配置定時(shí)任務(wù)的幾種方式總結(jié)
這篇文章主要介紹了spring配置定時(shí)任務(wù)的幾種方式總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12mybatis中使用InsertProvider注解報(bào)錯(cuò)解決全過程
這篇文章主要介紹了mybatis中使用InsertProvider注解報(bào)錯(cuò)解決全過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07使用maven一步一步構(gòu)建spring mvc項(xiàng)目(圖文詳解)
這篇文章主要介紹了詳解使用maven一步一步構(gòu)建spring mvc項(xiàng)目,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09springboot后端使用LocalDate接收日期的問題解決
在做Java開發(fā)時(shí),肯定會(huì)碰到傳遞時(shí)間參數(shù)的情況,本文主要介紹了springboot后端使用LocalDate接收日期的問題解決,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09