package DbUtilsDemo;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
//分页模板Bean
public class PaginationModel<T> {
private int pageNum;//当前页码
private int pageSize;//每页条数
private int pageCount;//总页数
private int countRow;//总记录数
private List<String> columnName;//要查询的列名的集合
private String rule;//查询条件和排序规则
private String paginationBy;//分页所依据的列名
private List<T> resultList=new ArrayList<T>();//分页结果集
public PaginationModel(){}
public PaginationModel(int pageNum,int pageSize,List<String> columnName,String rule,String paginationBy){
this.pageNum=pageNum;
this.pageSize=pageSize;
this.columnName=columnName;
this.rule=rule;
this.paginationBy=paginationBy;
if(this.pageSize!=0)
pageCount=countRow%pageSize==0?countRow/pageSize:countRow/pageSize+1;
}
public PaginationModel(int pageNum,int pageSize,String columnName,String rule,String paginationBy){
this(pageNum,pageSize,Arrays.asList(columnName),rule,paginationBy);
}
/**
* 获取当前页码
*/
public int getPageNum() {
if(pageNum>getPageCount()){
pageNum=getPageCount();
}
return pageNum;
}
/**
* 获取要查询的列名的集合
*/
public String getColumnName() {
StringBuilder sql=new StringBuilder();
if(columnName!=null&&columnName.size()!=0){
for(String s:columnName){
sql.append(s);
sql.append(",");
}
sql.setLength(sql.length()-1);
}else{
sql.append("*");
}
return sql.toString();
}
/**
* 设置要查询的列名的集合
* @param columnName
*/
public void setColumnName(List<String> columnName) {
this.columnName = columnName;
}
/**
* 设置要查询的列名的集合
* @param columnName
*/
public void setColumnName(String columnName) {
this.columnName = new ArrayList<String>();
this.columnName.add(columnName);
}
/**
* 获取查询条件及排序规则
* @return
*/
public String getRule() {
if(rule==null||rule.length()==0)
return "1=1";
return rule;
}
/**
* 设置查询条件及排序规则
* @param rule
*/
public void setRule(String rule) {
this.rule = rule;
}
/**
* 获取分页所依据的列名
* @return
*/
public String getPaginationBy() {
if(paginationBy==null)
throw new NullPointerException();
return paginationBy;
}
/**
* 设置分页所依据的列名
* @param paginationBy
*/
public void setPaginationBy(String paginationBy) {
this.paginationBy = paginationBy;
}
/**
* 设置当前页码
* @param pageNum
*/
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
/**
* 获取每页条数
* @return
*/
public int getPageSize() {
if(this.pageSize>getCountRow()){
setPageSize(getCountRow());
}
return pageSize;
}
/**
* 设置每页条数
* @param pageSize
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
/**
* 获取总页数
*/
public int getPageCount() {
if(pageSize==0)
throw new ArithmeticException();
pageCount=countRow%pageSize==0?countRow/pageSize:countRow/pageSize+1;
return pageCount;
}
/**
* 获取总行数
* @return
*/
public int getCountRow() {
return countRow;
}
/**
* 设置总行数
* @param countRow
*/
public void setCountRow(int countRow) {
this.countRow = countRow;
}
/**
* 获取分页结果
* @return
*/
public List<T> getResultList() {
return resultList;
}
/**
* 设置分页结果
* @param list
*/
public void setResultList(List<T> list) {
this.resultList = list;
}
}
PaginationModel
最新推荐文章于 2021-08-28 20:25:17 发布