springboot项目:mybatis使用pagehelper分页插件

1.引入依赖

<!--分页查询 -->
<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper</artifactId>
   <version>5.0.3</version>
</dependency>

 

2.在application.yml文件中配置:

#pagehelper
pagehelper:
    helperDialect: oracle
    #false页数为负数或者超出最大页数时为空  true则是最后一页数据
    reasonable: false
    #支持通过Mapper接口参数来传递分页参数
    supportMethodsArguments: true
    params: count=countSql
    #always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page
    returnPageInfo: check
 

3.在service中的分页方法上加上:

PageHelper.startPage(pageNum,pageSize);pageNum:当前页数 pageSize:当前页需要显示的数量

例如:

public PageBean<Operation> find(int currentPage, int pageSize, Operation operation) {
    /**
     * 配置分页
     * @Param currentPage 当前页数  pageSize 每页显示数量  totalNum 总页数
     */
    PageBean<Operation> operationPageBean = new PageBean<>(currentPage,pageSize,opLogMapper.getCount(operation));
    PageHelper.startPage(currentPage,pageSize);
    List<Operation> operations =  opLogMapper.find(operation);
    for (Operation op : operations){
        //模块枚举
        Module module =  Module.valueOf(op.getOperationModule());
        op.setOperationModuleName(module.getModuleName());
        //请求类型枚举
        Type type = Type.valueOf(op.getReqestType());
        op.setRequestTypeName(type.getTypeName());
    }
    operationPageBean.setItems(operations);
    return operationPageBean;
}

附上pageBean:

package com.nikoyo.nmsp.base;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.List;

/**
 * 分页查询实体类
 */
@ApiModel(value = "PageBean", description = "分页结果集")
public class PageBean<T> implements Serializable {
    /** 当前页码 */
    @ApiModelProperty(value = "当前页码")
    private Integer currentPage;
    /** 每页显示的总条数 */
    @ApiModelProperty(value = "每页显示的总条数")
    private Integer pageSize;
    /** 总条数 */
    @ApiModelProperty(value = "总条数")
    private Integer totalNum;
    /** 总页数 */
    @ApiModelProperty(value = "总页数")
    private Integer totalPage;
    /** 开始索引 */
    @ApiModelProperty(value = "开始索引")
    private Integer startIndex;
    /** 结束索引 */
    @ApiModelProperty(value = "结束索引")
    private Integer endIndex;
    /** 是否有上一页 */
    @ApiModelProperty(value = "是否有上一页")
    private boolean hasPrevious = false;
    /** 是否有下一页 */
    @ApiModelProperty(value = "是否有下一页")
    private boolean hasNext = false;
    /** 首页 */
    @ApiModelProperty(value = "首页")
    private Integer firstPageNum;
    /** 上一页 */
    @ApiModelProperty(value = "上一页")
    private Integer priviousPageNum;
    /** 下一页 */
    @ApiModelProperty(value = "下一页")
    private Integer nextPageNum;
    /** 尾页 */
    @ApiModelProperty(value = "尾页")
    private Integer endPageNum;
    /** 查询结果 */
    @ApiModelProperty(value = "查询结果")
    private List<T> items;



    public PageBean() {
    }

    public PageBean(Integer currentPage,Integer pageSize){
        this.currentPage = currentPage;
        this.pageSize = pageSize;
    }

    public PageBean(Integer currentPage, Integer pageSize, Integer totalNum) {
        //每页显示的记录数
        this.pageSize = pageSize == null ? 10 : pageSize;
        //当前页码数
        this.currentPage = currentPage == null ? 1 : currentPage;
        //总记录数
        this.totalNum = totalNum == null ? 0 : totalNum;
        //总页码数
        this.totalPage = (int) Math.ceil(this.totalNum * 1.0 / this.pageSize);
        //判断当前页码数是否大于总页码数
        if (this.currentPage > this.totalPage && this.totalPage >= 1) {
            this.currentPage = this.totalPage;
        }
        //查询的时候从多少记录开始
        this.startIndex = (this.currentPage - 1) * this.pageSize;
        //查询的时候 实际结束索引
        this.endIndex =  this.startIndex+this.pageSize-1;

        //是否有上一页
        if (this.currentPage > 1) {
            this.hasPrevious = true;
            this.firstPageNum = 1;
            this.priviousPageNum = this.currentPage - 1;
        }else if(this.currentPage == 1){
            this.hasPrevious = false;
            this.firstPageNum = 1;
            this.priviousPageNum = this.currentPage;
        }else{
            this.hasPrevious = false;
            this.firstPageNum = null;
            this.priviousPageNum = null;
        }
        //是否有下一页
        if (this.currentPage < this.totalPage) {
            this.hasNext = true;
            this.nextPageNum = this.currentPage + 1;
            this.endPageNum = this.totalPage;
        }else if(this.currentPage == this.totalPage){
            this.hasNext = false;
            this.nextPageNum = this.currentPage;
            this.endPageNum = this.currentPage;
        }else{
            this.hasNext = false;
            this.nextPageNum = null;
            this.endPageNum = null;
        }

        if(this.startIndex+1>this.totalNum){
            this.endIndex = this.totalNum - 1;
        }
    }

    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 Integer getTotalNum() {
        return totalNum;
    }

    public void setTotalNum(Integer totalNum) {
        this.totalNum = totalNum;
    }

    public Integer getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(Integer totalPage) {
        this.totalPage = totalPage;
    }

    public Integer getStartIndex() {
        return startIndex;
    }

    public void setStartIndex(Integer startIndex) {
        this.startIndex = startIndex;
    }

    public Integer getEndIndex() {
        return endIndex;
    }

    public void setEndIndex(Integer endIndex) {
        this.endIndex = endIndex;
    }

    public boolean isHasPrevious() {
        return hasPrevious;
    }

    public void setHasPrevious(boolean hasPrevious) {
        this.hasPrevious = hasPrevious;
    }

    public boolean isHasNext() {
        return hasNext;
    }

    public void setHasNext(boolean hasNext) {
        this.hasNext = hasNext;
    }

    public Integer getFirstPageNum() {
        return firstPageNum;
    }

    public void setFirstPageNum(Integer firstPageNum) {
        this.firstPageNum = firstPageNum;
    }

    public Integer getPriviousPageNum() {
        return priviousPageNum;
    }

    public void setPriviousPageNum(Integer priviousPageNum) {
        this.priviousPageNum = priviousPageNum;
    }

    public Integer getNextPageNum() {
        return nextPageNum;
    }

    public void setNextPageNum(Integer nextPageNum) {
        this.nextPageNum = nextPageNum;
    }

    public Integer getEndPageNum() {
        return endPageNum;
    }

    public void setEndPageNum(Integer endPageNum) {
        this.endPageNum = endPageNum;
    }

    public List<T> getItems() {
        return items;
    }

    public void setItems(List<T> items) {
        this.items = items;
    }

    @Override
    public String toString() {
        return "PageBean{" +
                "currentPage=" + currentPage +
                ", pageSize=" + pageSize +
                ", totalNum=" + totalNum +
                ", totalPage=" + totalPage +
                ", startIndex=" + startIndex +
                ", endIndex=" + endIndex +
                ", hasPrevious=" + hasPrevious +
                ", hasNext=" + hasNext +
                ", firstPageNum=" + firstPageNum +
                ", priviousPageNum=" + priviousPageNum +
                ", nextPageNum=" + nextPageNum +
                ", endPageNum=" + endPageNum +
                ", items=" + items +
                '}';
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值