分页util类,方便自己使用,

package myownthread;

/**
* 分页
*/
public class Page {
public static final int PAGESIZE = 20;
/**
* 总记录数
*/
private int totalRowsAmount;
/**
* 是否设置总记录数
*/
private boolean rowsAmountSet;
/**
* 每页记录数
*/
private int pageSize = PAGESIZE;
/**
* 当前页
*/
private int currentPage = 1;
/**
* 下一页
*/
private int nextPage;
/**
* 上一页
*/
private int previousPage;
/**
* 总页数
*/
private int totalPages;
/**
* 是否有下一页
*/
private boolean hasNext;
/**
* 是否有上一页
*/
private boolean hasPrevious;

/**
* 起始记录数
*/
private int pageStartRow;
/**
* 结束记录数
*/
private int pageEndRow;

/**
* 构造函数(总记录数)
*/

public Page(int totalRows) {
setTotalRowsAmount(totalRows, 0);
}

public Page(int totalRows, int pageSize) {
setTotalRowsAmount(totalRows, pageSize);
}

public Page() {
}

/**
* @param totalRowsAmount
* The totalRowsAmount to set.
*/
public void setTotalRowsAmount(int i, int j) {
if (pageSize == 0 || j == 0) {
pageSize = PAGESIZE;
} else {
pageSize = j;
}
totalRowsAmount = i;
totalPages = (totalRowsAmount % pageSize == 0) ? totalRowsAmount
/ pageSize : totalRowsAmount / pageSize + 1;
if (!this.rowsAmountSet) {
setCurrentPage(1);
this.rowsAmountSet = true;
}

}

/**
* @param currentPage
* The currentPage to set.
*/
public void setCurrentPage(int i) {
if (i < 1) {
i = 1;
System.out.println("sdfsssssssss");
}
currentPage = i;
nextPage = currentPage + 1;
previousPage = currentPage - 1;// 获得上一页

if (currentPage * pageSize < totalRowsAmount) {
pageEndRow = currentPage * pageSize;
pageStartRow = pageEndRow - pageSize + 1;
} else {
pageEndRow = totalRowsAmount;
totalPages = (totalRowsAmount % pageSize == 0) ? totalRowsAmount
/ pageSize : totalRowsAmount / pageSize + 1;
pageStartRow = pageSize * (totalPages - 1) + 1;
if (pageStartRow < 0) {// 修改了当totalRowsAmount =0,currentPage=1 的错误
pageStartRow = 0;
}
}
if (nextPage > totalPages) {
hasNext = false;
} else {
hasNext = true;
}
if (previousPage == 0) {
hasPrevious = false;
} else {
hasPrevious = true;
}
}

/**
* @return Returns the currentPage.
*/
public int getCurrentPage() {
return currentPage;
}

public boolean isHasNext() {
return hasNext;
}

public boolean isHasPrevious() {
return hasPrevious;
}

/**
* @return Returns the nextPage.
*/
public int getNextPage() {
return nextPage;
}

/**
* @return Returns the pageSize.
*/
public int getPageSize() {
return pageSize;
}

/**
* @return Returns the previousPage.
*/
public int getPreviousPage() {
return previousPage;
}

/**
* @return Returns the totalPages.
*/
public int getTotalPages() {
return totalPages;
}

/**
* @return Returns the totalRowsAmount.
*/
public int getTotalRowsAmount() {
return totalRowsAmount;
}

/**
* @param hasNext
* The hasNext to set.
*/
public void setHasNext(boolean b) {
hasNext = b;
}

/**
* @param hasPrevious
* The hasPrevious to set.
*/
public void setHasPrevious(boolean b) {
hasPrevious = b;
}

/**
* @param nextPage
* The nextPage to set.
*/
public void setNextPage(int i) {
nextPage = i;
}

/**
* @param pageSize
* The pageSize to set.
*/
public void setPageSize(int i) {
pageSize = i;
}

/**
* @param previousPage
* The previousPage to set.
*/
public void setPreviousPage(int i) {
previousPage = i;
}

/**
* @param totalPages
* The totalPages to set.
*/
public void setTotalPages(int i) {
totalPages = i;
}

/**
* @return Returns the pageEndRow.
*/
public int getPageEndRow() {
return pageEndRow;
}

/**
* @return Returns the pageStartRow.
*/
public int getPageStartRow() {
return pageStartRow;
}

/**
* @param pageStartRow
* The pageStartRow to set.
*/
public void setPageStartRow(int pageStartRow) {
this.pageStartRow = pageStartRow;
}

// public String getDescription() {
// String description = "Total:" + this.getTotalRowsAmount() + " items "
// + this.getTotalPages() + " pages";
// this.currentPage+" Previous "+this.hasPrevious +
// " Next:"+this.hasNext+
// " start row:"+this.pageStartRow+
// " end row:"+this.pageEndRow;
// return description;
// }

public String getDescription() {
String description = "Total:" + this.getTotalRowsAmount() + " items "
+ this.getTotalPages() + " pages,Current page:"
+ this.currentPage + " Previous " + this.hasPrevious + " Next:"
+ this.hasNext + " start row:" + this.pageStartRow
+ " end row:" + this.pageEndRow;
return description;
}

public static void main(String args[]) {
Page pc = new Page();
System.out.println(pc.getPageSize());
// pc.setPageSize(4);
pc.setTotalRowsAmount(60, 0);
pc.setCurrentPage(-10);
System.out.println(pc.getTotalPages() + "aaa " + pc.hasPrevious + " "
+ pc.hasNext);
System.out.println(pc.getPageStartRow() + " " + pc.getPageEndRow());

}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值