自己写的一个分页工具类,有待改善,可根据实际需要进行修改:
package com.hsm.utils;
//分页类 辅助类 不用实现序列化接口 Serializable
public class Page {
long totalRowsAmount; // 总行数,hibernate语句返回的是Long型的数据
int pageSize = 4; // 每页行数、即显示的数据个数
int currentPage = 1; // 当前页码
int totalPages; // 总页数
int pageStartRow;// 显示页的开始显示数据行、返回的结果集中的
int pageEndRow;// 显示页的末尾显示数据行、返回的结果集中的,基本用不到
/*
* @return
*/
public long getTotalRowsAmount() {
return totalRowsAmount;
}
/*
* @param t 设置总行数
*/
public void setTotalRowsAmount(long n) {
this.totalRowsAmount = n;
}
public int getPageSize() {
return pageSize;
}
/*
* @param pageSize 设置每页显示的数据个数、即行数
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getCurrentPage() {
return currentPage;
}
/*
* @param currentPage 设置当前页码数
*/
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
/*
* 总页数的获取
*/
public int getTotalPages() {
return (int) ((this.getTotalRowsAmount() - 1) / this.getPageSize() + 1);
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
public int getPageStartRow() {
if (getCurrentPage() * getPageSize() < getTotalRowsAmount()) {
pageStartRow = getPageEndRow() - getPageSize() + 1;
} else {
pageStartRow = (int) (getPageSize() * (getTotalPages() - 1) + 1);
}
return pageStartRow;
}
/*
* @param pageStartRow 设置当前页显示的开始数据行数
*/
public void setPageStartRow(int pageStartRow) {
this.pageStartRow = pageStartRow;
}
public int getPageEndRow() {
if (getCurrentPage() * getPageSize() < getTotalRowsAmount()) {
pageEndRow = getCurrentPage() * getPageSize();
} else {
pageEndRow = (int) getTotalRowsAmount();
}
return pageEndRow;
}
/*
* @param pageStartRow 设置当前页显示的末尾数据行数
*/
public void setPageEndRow(int pageEndRow) {
this.pageEndRow = pageEndRow;
}
}