package com.fang.bbks.common.persistence.jdbc;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @Intro 分页
* @author Lee
* @Date 2013-8-13
*/
@SuppressWarnings("serial")
public class Paging<T> implements Serializable {
private int pageNo;//当前页
private int nextNo;//下一页
private int priorNo;//上一页
private int pageCount;//总页
private int rowCount;//记录总行数
private int pageSize;//页大小
private int startRow;//记录开始行
private String orderBy;//排序
private String orderType;//类型
private List<String> pageList;//分页号列举
private int pageListSize = 10;//分也号列觉多少
private List<T> list;//结果集
private String groupby;//分组
public Paging(){
pageSize = 10;
pageNo = 1;
startRow = 0;
rowCount = 0;
}
public Paging(int pageNo,int pageSize){
this.pageNo = pageNo;
this.pageSize = pageSize;
}
public int getPageNo(){
if(pageNo <= 0)
return 1;
return pageNo;
}
public void setPageNo(Integer pageNo){
if(pageNo == null){
pageNo = 1;
}
this.pageNo = pageNo;
}
public int getNextNo(){
this.nextNo = this.pageNo + 1;
if(this.nextNo > pageCount)
return pageCount;
return this.nextNo;
}
public int getPriorNo(){
this.priorNo = this.pageNo - 1;
if(this.priorNo < 1)
return 1;
return this.priorNo;
}
public int getPageCount(){
if (rowCount % pageSize == 0 && rowCount > pageSize) {
pageCount = rowCount / pageSize;
} else if (rowCount % pageSize != 0 && rowCount > pageSize) {
pageCount = rowCount / pageSize + 1;
} else {
pageCount = 1;
}
return pageCount;
}
public void setPageCount(int pageCount){
this.pageCount = pageCount;
}
public int getRowCount(){
return rowCount;
}
public void setRowCount(int rowCount){
this.rowCount = rowCount;
if(pageSize <= 0){
pageSize = 10;
}
pageCount = (rowCount + pageSize -1) / pageSize;//!!!
}
public int getPageSize(){
return pageSize;
}
public void setPageSize(int pageSize){
if(pageSize > 100){
pageSize = 100;
}
this.pageSize = pageSize;
}
public int getStartRow(){
this.startRow = (pageNo - 1) * pageSize;
if(this.startRow < 0){
this.startRow = 1;
}
return this.startRow;
}
public void setStartRow(int startRow){
if(startRow >= rowCount){
startRow = rowCount - 1;
}
this.startRow = startRow;
}
public List<String> getPageList(){
if (pageCount > 0) {
pageList = new ArrayList<String>();
int startNo = 1;
int endNo = 0;
if (pageNo - pageListSize / 2 > 0) {
startNo = pageNo - pageListSize / 2;
}
if (pageNo + pageListSize / 2 < pageCount) {
endNo = pageNo + pageListSize / 2;
} else {
endNo = pageCount;
}
for (int i = startNo; i <= endNo; i++) {
pageList.add(Integer.toString(i));
}
return pageList;
} else {
return new ArrayList<String>();
}
}
public int getPageListSize(){
return pageListSize;
}
public void setPageListSize(int pageListSize){
this.pageListSize = pageListSize;
}
public List<T> getList(){
return this.list;
}
public void setList(List<T> list){
this.list = list;
}
public String getOrderBy() {
return orderBy;
}
public void setOrderBy(String orderBy) {
this.orderBy = orderBy;
}
public String getOrderType() {
return orderType;
}
public void setOrderType(String orderType) {
this.orderType = orderType;
}
public String getGroupby() {
return groupby;
}
public void setGroupby(String groupby) {
this.groupby = groupby;
}
@Override
public String toString() {
return "Paging [pageNo=" + pageNo + ", nextNo=" + nextNo + ", priorNo="
+ priorNo + ", pageCount=" + pageCount + ", rowCount="
+ rowCount + ", pageSize=" + pageSize + ", startRow="
+ startRow + ", orderBy=" + orderBy + ", orderType="
+ orderType + ", pageList=" + pageList + ", pageListSize="
+ pageListSize + ", list=" + list + ", groupby=" + groupby
+ "]";
}
}