SpringBoot後臺系統--新手教程(四)pagehelper分頁外掛
阿新 • • 發佈:2021-02-09
技術標籤:SpringCloud-SpringBootjavaspring後端spring boot
分頁查詢,我們使用pagehelper分頁外掛,在SpringBoot專案中,我們要使用 pagehelper作為分頁外掛,我需要匯入pagehelper外掛的啟動器依賴,直接匯入pagehelper依賴會報錯。
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId >
<version>1.2.5</version>
</dependency>
-
在我們匯入好依賴後,在開始進行分頁查詢之前,我們需要一個PageResult的工具類
import java.io.Serializable; import java.util.List; public class PageResult implements Serializable { private Long total;//總記錄數 private List rows;//當前頁結果 public PageResult(Long total,
【把我們的工具類放到我們的entity包下】
-
這時我們還需要一個QueryPageBean的工具類
package com.sanchi.springboot_mybatis.pojo; import java.io.Serializable; public class QueryPageBean implements Serializable { private Integer currentPage;//頁碼 private Integer pageSize;//每頁記錄數 private String queryString;//查詢條件 public Integer getCurrentPage() { return currentPage; } public void setCurrentPage(Integer currentPage) { this.currentPage = currentPage; } public Integer getPageSize() { return pageSize; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public String getQueryString() { return queryString; } public void setQueryString(String queryString) { this.queryString = queryString; } }
-
匯入好我們的工具類後,我們開始進行分頁查詢,我們的分頁查詢,需要前端給我們傳遞倆個引數,分別是:當前頁、每頁資料量。這時候我們開始寫介面。
public Result findAll(Integer currentPage, Integer pageSize) { return null; }
-
簡單的介面寫好後,我們開始使用pagehelper進行分頁查詢。
public Result findAll(Integer currentPage, Integer pageSize) { //首先建立QueryPageBean QueryPageBean queryPageBean = new QueryPageBean(); //建立好Bean之後,向我們的PageBean裡放置前端向我們傳遞的引數,當前頁和每頁的資料量 queryPageBean.setCurrentPage(currentPage); queryPageBean.setPageSize(pageSize); //將QueryPageBean傳入業務層的方法進行查詢,使用我們的工具類接收資料 PageResult pageResult = service.findAll(queryPageBean); return null; }
【我們的controller寫好後,開始編寫業務層的程式碼】
-
在我們的service層開始寫方法
public PageResult findAll(QueryPageBean queryPageBean) { //啟動PageHelper,放入PageHelper需要的引數,使用Page接收資料 Page page = PageHelper.startPage(queryPageBean.getCurrentPage(), queryPageBean.getPageSize()); //呼叫mapper的查詢方法,使用List<Student>進行資料接收 List<Student> students = mapper.findAll(); //我們方法的返回值是PageResult,所以我們使用PageResult進行返回,返回到這個方法的呼叫者 return new PageResult(page.getTotal(), students); }
【這時,我們service的程式碼就寫好了】
-
在我們的dao層開始寫我們方法
<select id="findAll" resultType="com.sanchi.springboot_mybatis.pojo.Student"> select * from student </select>
【我們使用的是xml的方式進行sql查詢的,所以在dao層寫好介面後,在我們xml檔案中寫我們的sql查詢】
我們已經使用了pagehelper外掛作為我們的分頁查詢外掛了,所以在sql語句這裡,我們不需要做多餘的操作,直接把我們需要的資料全部查詢出來就ok了,pagehelper會幫我們對我們查詢出來的資料進行分頁操作的
-
dao層和service層我們都寫好了,但是在controller層我們返回了null,接下來我們繼續完成我們controller
@RequestMapping("/findAll") public Result findAll(Integer currentPage, Integer pageSize) { QueryPageBean queryPageBean = new QueryPageBean(); queryPageBean.setCurrentPage(currentPage); queryPageBean.setPageSize(pageSize); PageResult pageResult = service.findAll(queryPageBean); //我們controller返回是使用我們的Result工具類進行返回的,所以把我們使用pagehelper查詢到的資料放進去,進行返回就ok了 return new Result(true, MessageConstant.QUERY_STUDENT_SUCCESS, pageResult); }
使用工具類是為了方便我們對程式碼進行管理,防止程式碼冗餘