PaginationModel

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;
	} 
	
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值