分页这种问题,在项目中最好有一个公共的基类,公共几类规范好了分页共性。因为所有列表页的查询都需要使用分页的。推荐代码如下:
import java.util.Date;
//类QueryBaseDo.java的实现描述:分页查询对象的基类
public class QueryBaseDo {
/** 查询结果总记录数 */
private Integer totalCount;
// 默认一页10条数据
public static final int DEFAULT_PAGE_SIZE = 10;
// 默认从第一页开始
public static final int DEFAULT_PAGE_NO = 1;
// 页面大小
private int pageSize = DEFAULT_PAGE_SIZE;
// 第几页
private int pageNum = DEFAULT_PAGE_NO;
// 这个值一般由服务端设置
private int total = Integer.MAX_VALUE;
// 是否要获取总页数,如果用户点分页查询第2页到第N页可以不用查询记录总数
private boolean needPageTotal = true;
/**
* 是否进行分页
*/
private boolean doPage = true;
private String creator;
private Date gmtCreate;
private String modifier;
private Date gmtModified;
private String isDeleted = "n";
private Integer skip = 0;
private Integer take = 10;
public Integer getSkip() {
return skip;
}
public void setSkip(Integer skip) {
this.skip = skip;
}
public Integer getTake() {
return take;
}
public void setTake(Integer take) {
this.take = take;
}
public Integer getTotalCount() {
return totalCount;
}
public void setTotalCount(Integer totalCount) {
this.totalCount = totalCount;
}
public int getPageSize() {
if (pageSize <= 0) {
pageSize = DEFAULT_PAGE_SIZE;
}
return pageSize;
}
public void setPageSize(int pageSize) {
if (pageSize < 0) {
pageSize = DEFAULT_PAGE_SIZE;
}
this.pageSize = pageSize;
}
public int getPageNum() {
// total已经被赋值,修正pagenum 的值
if (Integer.MAX_VALUE != total && total > 0) {
pageNum = Math.min(pageNum, (int) Math.ceil((double) total / pageSize));
}
if (pageNum <= 0) {
pageNum = DEFAULT_PAGE_NO;
}
return pageNum;
}
public void setPageNum(int pageNum) {
if (pageNum <= 0) {
pageNum = DEFAULT_PAGE_NO;
}
this.pageNum = pageNum;
}
public int getStartNum() {
int startNum = getPageSize() * (getPageNum() - 1);
if (startNum < 0) {
startNum = 0;
}
return startNum;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public boolean isNeedPageTotal() {
return needPageTotal;
}
public void setNeedPageTotal(boolean needPageTotal) {
this.needPageTotal = needPageTotal;
}
public boolean isDoPage() {
return doPage;
}
public void setDoPage(boolean doPage) {
this.doPage = doPage;
}
public String getCreator() {
return creator;
}
public void setCreator(String creator) {
this.creator = creator;
}
public Date getGmtCreate() {
return gmtCreate;
}
public void setGmtCreate(Date gmtCreate) {
this.gmtCreate = gmtCreate;
}
public String getModifier() {
return modifier;
}
public void setModifier(String modifier) {
this.modifier = modifier;
}
public Date getGmtModified() {
return gmtModified;
}
public void setGmtModified(Date gmtModified) {
this.gmtModified = gmtModified;
}
public String getIsDeleted() {
return isDeleted;
}
public void setIsDeleted(String isDeleted) {
this.isDeleted = isDeleted;
}
public static int getDefaultPageSize() {
return DEFAULT_PAGE_SIZE;
}
public static int getDefaultPageNo() {
return DEFAULT_PAGE_NO;
}
}