强大的 java 分页器

来源:互联网 发布:更改网卡mac地址 编辑:程序博客网 时间:2024/06/10 12:08

花了几个小时写的一个强大的分页器

package cn.soft.util;/** *类描述:分页器 * *说明:pagination 为开头的变量指的是 翻页时用的按钮的页码   * * *@author: 刘夏楠 *@date: 日期:2014-5-7 时间:下午10:26:21 *@version 1.0 */public class PageSplitor {private int pageSize;//每页行数private int totalRows;//总行数private int  pagenum;//总页数private int page=1;//当前页private int first;//数据库查询起始位private int count;//数据库查询数量private int pre;//前一页private int next;//下一页private int paginationNum;//页码显示数量private int paginationBegain=0;//开始页码private int paginationEnd=0;//结束页码/** * @param pageSize 每页行数 * @param totalRows 总行数 * @param paginationNum  页码显示数量 */public PageSplitor(int pageSize,int totalRows,int paginationNum){this.pageSize=pageSize;this.totalRows=totalRows;this.paginationNum=paginationNum;//计算总页数 pagenum=(totalRows+pageSize-1)/pageSize;          if(pagenum<1)              pagenum=1;   setPage(1);}public void setPage(int page) {if(page<1)this.page=1;else if(page>pagenum)this.page=pagenum;else this.page=page;first=(page-1)*pageSize;//数据库起始位count=pageSize;//数据库count   pre=this.page-1;     next=this.page+1;   if(pre<1)pre=1;   if(next>pagenum)next=pagenum;      int p1=paginationNum/2; int p2=paginationNum-p1-1;     if(pagenum<=paginationNum)//页数不足5    {        paginationBegain=1;    paginationEnd=pagenum;    }    else//页数大于5     {          if(this.page>p1&&this.page<=pagenum-p2)     {     paginationBegain=this.page-p1;     paginationEnd=this.page+p2;     }     else if(this.page<=p1)     {     paginationBegain=1;     paginationEnd=paginationNum;          }else if(this.page>pagenum-p2)     {     paginationBegain=pagenum-paginationNum+1;     paginationEnd=pagenum;          }          }   }/** * 得到当前页 * @return  * int  */public int getPage() {return page;}/** * 得到每页行数 * @return * int */public int getPageSize() {return pageSize;}/** * 得到总行数 * @return * int */public int getTotalRows() {return totalRows;}/** * 得到总页数 * @return * int */public int getPagenum() {return pagenum;}/** * 得到数据库起始位 * @return * int */public int getFirst() {return first;}/** * 得到数据库查询长度 * @return * int */public int getCount() {return count;}/** * 得到前一页页码 * @return * int */public int getPre() {return pre;}/** * 得到后一页页码 * @return * int */public int getNext() {return next;}/** * 得到页码显示数量 * @return * int */public int getPaginationNum() {return paginationNum;}/** * 得到页码显示开始 * @return * int */public int getPaginationBegain() {return paginationBegain;}/** * 得到页码显示结束 * @return * int */public int getPaginationEnd() {return paginationEnd;}@Overridepublic String toString() {return "PageSplitor [count=" + count + ", first=" + first + ", next="+ next + ", page=" + page + ", pageSize=" + pageSize+ ", pagenum=" + pagenum + ", paginationBegain="+ paginationBegain + ", paginationEnd=" + paginationEnd+ ", paginationNum=" + paginationNum + ", pre=" + pre+ ", totalRows=" + totalRows + "]";}}


 

0 0
原创粉丝点击