分頁插件pagehelp的使用


1.導入jar包

 <!-- 分頁插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.0.4</version>
        </dependency>

        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-autoconfigure</artifactId>
            <version>1.2.10</version>
        </dependency>
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.10</version>
            <exclusions>
                <exclusion>
                    <artifactId>pagehelper</artifactId>
                    <groupId>com.github.pagehelper</groupId>
                </exclusion>
            </exclusions>
        </dependency>

2.yml中的配置

pagehelper:
  helperDialect: mysql
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql

 3.封裝PageRequest

package com.ccc.demoboot.commons;

/**
 * 分頁請求
 */
public class PageRequest {
    /**
     * 當前頁碼
     */
    private int pageNum;
    /**
     * 每頁數量
     */
    private int pageSize;

    public int getPageNum() {
        return pageNum;
    }
    public void setPageNum(int pageNum) {
        this.pageNum = pageNum;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
}

4.封裝PageUtils

package com.ccc.demoboot.commons;

import com.github.pagehelper.PageInfo;


public class PageUtils {
    /**
     * 將分頁信息封裝到統一的接口
     * @return
     */
    public static PageResult getPageResult(PageInfo<?> pageInfo) {
        PageResult pageResult = new PageResult();
        pageResult.setPageNum(pageInfo.getPageNum());
        pageResult.setPageSize(pageInfo.getPageSize());
        pageResult.setTotalSize(pageInfo.getTotal());
        pageResult.setTotalPages(pageInfo.getPages());
        pageResult.setContent(pageInfo.getList());
        return pageResult;
    }
}

5.封裝分頁返回的結果PageResult

package com.ccc.demoboot.commons;

import java.util.List;

/**
 * 分頁結果類
 */
public class PageResult {
    /**
     * 當前頁碼
     */
    private int pageNum;
    /**
     * 每頁數量
     */
    private int pageSize;
    /**
     * 記錄總數
     */
    private long totalSize;
    /**
     * 頁碼總數
     */
    private int totalPages;
    /**
     * 數據模型
     */
    private List<?> content;

    public int getPageNum() {
        return pageNum;
    }
    public void setPageNum(int pageNum) {
        this.pageNum = pageNum;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public long getTotalSize() {
        return totalSize;
    }
    public void setTotalSize(long totalSize) {
        this.totalSize = totalSize;
    }
    public int getTotalPages() {
        return totalPages;
    }
    public void setTotalPages(int totalPages) {
        this.totalPages = totalPages;
    }
    public List<?> getContent() {
        return content;
    }
    public void setContent(List<?> content) {
        this.content = content;
    }
}

6.controller層的實現

注意:以下四句話必須放在查詢總數之前,放在邏輯處理之前,不然分頁將不起作用

package com.ccc.demoboot.controller;

import com.ccc.demoboot.commons.*;
import com.ccc.demoboot.domain.*;
import com.ccc.demoboot.response.ResultModel;
import com.ccc.demoboot.service.*;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

@RestController
public class pagecs {

@Autowired
private RiskUserService riskUserService;
@RequestMapping(value = "getuser11")
public ResultModel addProject(@RequestBody Map<String, Object> map) {

PageRequest pageRequest=new PageRequest();
pageRequest.setPageSize(Integer.parseInt(map.get("pageSize").toString()));
pageRequest.setPageNum(Integer.parseInt(map.get("pageNum").toString()));
PageHelper.startPage(pageRequest.getPageNum(), pageRequest.getPageSize());

List<RiskUser> riskUserList=riskUserService.getUserByCompanyId(17);

PageResult pageResult= PageUtils.getPageResult(new PageInfo<>(riskUserList));


return ResultModel.successModel("查詢成功",pageResult);
}


}

附加內容:PageInfo屬性表

當前頁 
private int pageNum;
每頁的數量  
private int pageSize;  
當前頁的數量  
private int size;  
//由於startRow和endRow不常用,這里說個具體的用法  
//可以在頁面中"顯示startRow到endRow 共size條數據"  

當前頁面第一個元素在數據庫中的行號  
private int startRow;  
當前頁面最后一個元素在數據庫中的行號  
private int endRow;  
總記錄數  
private long total;  
總頁數  
private int pages;  
結果集  
private List<T> list;  

第一頁  
private int firstPage;  
前一頁  
private int prePage;  

是否為第一頁  
private boolean isFirstPage = false;  
是否為最后一頁  
private boolean isLastPage = false;  
是否有前一頁  
private boolean hasPreviousPage = false;  
是否有下一頁  
private boolean hasNextPage = false;  
導航頁碼數  
private int navigatePages;  
所有導航頁號  
private int[] navigatepageNums;  
后台分頁

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM