java 分页类

 

/**
 * 分页类
 * 
 */
public class Page<T> {

	public static final int DEFAULT_PAGE_SIZE = 10;
	
	/**
	 * 当前页的页码
	 */
	private int pageNo;
	
	/**
	 * 每页几条记录
	 */
	private int pageSize;
	
	/**
	 * 总记录数
	 */
	private int totalCount;

	/**
	 * 总的页数
	 */
	private int pageCount;

	/**
	 * 结果集
	 */
	private List<T> result;
	/**
	 * 构造器
	 * 
	 * @param totalCount
	 * @param pageSize
	 */
	public Page(int pageNo, int pageSize, int totalCount) {
		setPageNo(pageNo);
		setPageSize(pageSize);
		setTotalCount(totalCount);
	}

	public Page(int pageNo, int pageSize) {
		setPageNo(pageNo);
		setPageSize(pageSize);
	}

	public int getPageNo() {
		return pageNo;
	}

	public void setPageNo(int pageNo) {
		// 设置当前页
		if (pageNo < 1) {
			pageNo = 1;
		} 
		this.pageNo = pageNo;
	}

	public void setTotalCount(int totalCount) {
		if (totalCount >= 0) {
			this.totalCount = totalCount;
		} else {
			totalCount = 0;
		}
		calculatePageCount();
	}

	/**
	 * 计算总的页数
	 */
	private void calculatePageCount() {
		pageCount = totalCount / pageSize + (totalCount % pageSize == 0 ? 0 : 1);
	}
	
	/**
	 * 当前页有几笔记录
	 * @return
	 */
	public int getCurrentPageSize() {
		if (totalCount == 0) {
			return 0;
		} else if (pageNo < pageCount) {
			// 非末页
			return pageSize;
		} else {
			// 末页
			return (totalCount - (pageNo - 1) * pageSize);
		}
	}

	/**
	 * 当前页开始记录号,从0开始算
	 * @return
	 */
	public int getFirstResult() {
		return (pageNo - 1) * pageSize;
	}

	/**
	 * 当前页结束记录号
	 * @return
	 */
	public int getLastResult() {
		return (pageNo - 1) * pageSize + getCurrentPageSize() - 1;
	}

	/**
	 * 是否有下一页
	 */
	public boolean isHasNextPage() {
		return (pageNo == pageCount) ? false : true;
	}

	/**
	 * 是否有上一页
	 */
	public boolean isHasPrevPage() {
		return (pageNo == 1) ? false : true;
	}

	/**
	 * 是否是第一页
	 */
	public boolean isFirstPage() {
		return (pageNo == 1) ? true : false;
	}

	/**
	 * 是否是最后一页
	 */
	public boolean isLastPage() {
		return (pageNo == pageCount) ? true : false;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = (pageSize <= 0) ? DEFAULT_PAGE_SIZE : pageSize;
	}
	
	/**
	 * 前一页的页码
	 */
	public int getPrevPageNo() {
		return isHasPrevPage() ? (pageNo - 1) : pageNo;
	}

	/**
	 * 后一页页码
	 */
	public int getNextPageNo() {
		return isHasNextPage() ? (pageNo + 1) : pageNo;
	}

	public int getPageCount() {
		return pageCount;
	}

	public int getTotalCount() {
		return totalCount;
	}

	public boolean isEmpty() {
		return totalCount == 0;
	}

	public List<T> getResult() {
		return result;
	}

	public void setResult(List<T> result) {
		this.result = result;
	}


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值