java原生的分页工具

@NoArgsConstructor
@Data //生成 空参构造  get、set、 tostring、 equals、 hascode
public class PageUtils<T> {

    private int totalCount;//总记录数   依赖查询,外界传入
    private int pageSize;//页面容量    依赖外界传入
    private int currentPage;//当前页码    依赖外界传入
    private int totalPage;//总页数 √
    private int startIndex;//每一页的起始索引
    private int prePage;//上一页    √
    private int nextPage;//下一页   √
    private List<T> list;//分页查询出的数据本身

    public PageUtils(int totalCount, int pageSize, String currentPage) {
        this.totalCount = totalCount;
        this.pageSize = pageSize;
        initCurrentPage(currentPage);
        initTotalPage();
        initStartIndex();
        initPrePage();
        initNextPage();
    }

    //初始化当前页码
    public void initCurrentPage(String currentPage) {
        if(currentPage == null) {
            //第一次加载页面时没有当前页码,则默认为1
            this.currentPage = 1;
        } else {
            //后续操作分页工具条,都是基于当前页在操作的
            this.currentPage = Integer.parseInt(currentPage);
        }
    }

    //初始化每一页的起始索引
    public void initStartIndex() {
        this.startIndex = (this.currentPage - 1) * this.pageSize;
    }

    //初始化上一页
    public void initPrePage() {
        if(this.currentPage == 1) {
            //如果本身就是第一页,则前一页依然是第一页
            this.prePage = 1;
        } else {
            //如果是2到更大的页码,则有前一页
            this.prePage = this.currentPage - 1;
        }
    }

    //初始化总页数
    public void initTotalPage() {
        this.totalPage = (this.totalCount % this.pageSize == 0) ? (this.totalCount / this.pageSize) : (this.totalCount / this.pageSize + 1);
    }

    //初始化下一页
    public void initNextPage() {
        if(this.currentPage == this.totalPage) {
            //如果本身就是最后一页,则下一页依然是最后一页
            this.nextPage = totalPage;
        } else {
            //如果是倒数第二页以及以前,则有下一页
            this.nextPage = this.currentPage + 1;
        }
    }

}

  

posted @ 2022-06-16 09:41  启豪  阅读(114)  评论(0编辑  收藏  举报