page分页工具类 数据库端
/* * 文件名: Page.java * * 创建日期: 2005-03-06 * * Copyright(C) 2008, by FrancisJin. * * 原始作者: sunny 黄学斌 * */ package com.feinno.scort.exp.util; /** * 描述数据库分页信息的Java类 * * @author haungxuebin * * @version $Revision: 1.1 $ * * @since 2012-10-11 */ public class Page { /** 总共的页数 */ private int totalPage; /** 总共有多少记录 */ private long resultCount; /** 目前的页数 */ private int page; /** 每页显示条目数 */ private int pageSize; /** 要排序的字段 */ private String orderBy; /** 按什么排序,只能是:asc||desc */ private String order; /** * 分页信息Java类的构造函数 * * @param resultCount * 总记录数 * @param pageSize * 每页显示条目数 */ public Page(long resultCount, int pageSize) { if (resultCount > 0) { this.resultCount = resultCount; } if (pageSize > 0) { this.pageSize = pageSize; } if (resultCount > 0 && pageSize > 0) { this.totalPage = (int) ((resultCount + pageSize - 1) / pageSize); } this.page = 1; } /** * 获得当前页的前一页,如果当前页是第一页,返回当前页。 * * @return 当前页的前一页 */ public int getPreviousPage() { if (this.page - 1 <= 0) { return 1; } else { return (this.page - 1); } } /** * 获得当前页的下一页,如果当前页是最后一页,返回当前页。 * * @return 当前页的下一页 */ public int getNextPage() { if (this.page + 1 >= totalPage) { return totalPage; } else { return (this.page + 1); } } /** * 分页查询的起始位置 * * @return 分页查询的起始位置 */ public int getFirstItemPos() { int temp = (page - 1) * pageSize; if(temp<0)temp=0; return temp; } /** * 需要从起始位置开始向后查询的总记录条数,由于分页原因,最后一页记录数不一定是每页显示的数目,可能比这小。 * * @return 需要从起始位置开始向后查询的总记录条数 */ public long getMaxItemNum() { long maxItemNum = 0; if (resultCount <= pageSize) { maxItemNum = resultCount; } else if ((resultCount - (page - 1) * pageSize) >= pageSize) { maxItemNum = pageSize; } else { maxItemNum = (resultCount - (page - 1) * pageSize); } return maxItemNum; } /** * 获取当前分页最后一条数据的序号 * @return */ public long getEndItemPos(){ return this.getFirstItemPos()+this.getMaxItemNum(); } public int getPage() { return page; } /** * 设置当前页,如果设置的页数大于总页数,则当前页为最后一页,如果设置页数小于0,则当前页为1。 * * @param page * 要设置的当前页 */ public void setPage(int page) { if (page > totalPage) { this.page = totalPage; } else if (page <= 0) { this.page = 1; } else { this.page = page; } } public int getPageSize() { return pageSize; } /** * 获得记录数 * * @return 总记录数 */ public long getResultCount() { return resultCount; } /** * 获得总页数 * * @return 总页数 */ public int getTotalPage() { return totalPage; } /** * 获得如何排序 * * @return 返回 asc或者desc。 */ public String getOrder() { return order; } /** * 设置如何排序 * * @param order * 要设置的排序方式,asc或者desc。 */ public void setOrder(String order) { this.order = order; } /** * 获得要排序的字段 * * @return 返回排序字段。 */ public String getOrderBy() { return orderBy; } /** * 设置要排序的字段 * * @param orderBy * 要设置的排序字段。 */ public void setOrderBy(String orderBy) { this.orderBy = orderBy; } }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: Util工具类 跨Oracle、MySQL通用分页查询
- 下一篇: java分页工具类