java 分页器_强大的 java 分页器

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

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;

}

@Override

public 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值