分页的工具类

分页查询实现
本文介绍了一个通用的分页查询类PageBean的实现细节,包括如何计算当前页的开始索引、总页数以及显示的起始和结束页码。通过PageBean类,可以方便地进行数据分页展示,适用于各种需要分页显示数据的场景。

public class PageBean<T> {
    private int pageNumber;//当前页码
    private int pageSize;//每页的记录数
    private int startIndex;//当前页开始的索引值
    private int totalRecord;//总记录数
    private int totalPage;//总页数
    private List<T> data;//分页的 页面数据
    private int start;//开始页码
    private int end;//结束页码

    private void jisuan(){//前四后五 共10页的计算方法
        if(getTotalPage() < 10){//getTotalPage() 至少执行了一次这个方法,获得了totalPage值
            start = 1;
            end = totalPage;
        }else {
            start = pageNumber - 4;
            end = pageNumber + 5;
            if(start < 1){//小于第一页,极限值判断
                start = 1;
                end = 10;
            }
            if(end > totalPage){//最后一页,极限值判断
                start = totalPage - 9;
                end = totalPage;

            }
        }
    }

    public int getStart() {//获得start
        jisuan();
        return start;
    }
    public int getEnd() {//获得end
        jisuan();
        return end;
    }
    public PageBean(int pageNumber, int pageSize) {//获得pageNumber 和 pageSize
        this.pageNumber = pageNumber;
        this.pageSize = pageSize;
    }
    public int getStartIndex(){//计算startIndex
        startIndex = (pageNumber - 1) * pageSize;
        return startIndex;
    }
    public int getTotalPage() {//计算totalPage
        if(totalRecord % pageSize == 0){
            totalPage = totalRecord / pageSize;
        }else {
            totalPage = totalRecord / pageSize + 1;
        }
        return totalPage;
    }

    public int getPageNumber() {
        return pageNumber;
    }

    public void setPageNumber(int pageNumber) {
        this.pageNumber = pageNumber;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

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

    public int getTotalRecord() {
        return totalRecord;
    }

    public void setTotalRecord(int totalRecord) {
        this.totalRecord = totalRecord;
    }

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

    public List<T> getData() {
        return data;
    }

    public void setData(List<T> data) {
        this.data = data;
    }

    public void setStart(int start) {
        this.start = start;
    }

    public void setEnd(int end) {
        this.end = end;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值