1. 程式人生 > 其它 >SpringBoot後臺系統--新手教程(四)pagehelper分頁外掛

SpringBoot後臺系統--新手教程(四)pagehelper分頁外掛

技術標籤: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,
    List rows) { super(); this.total = total; this.rows = rows; } public Long getTotal() { return total; } public void setTotal(Long total) { this.total = total; } public List getRows() { return rows; } public void setRows(
    List rows) { this.rows = rows; } }

    【把我們的工具類放到我們的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);
    }
    

    使用工具類是為了方便我們對程式碼進行管理,防止程式碼冗餘