JpaPageResults.java 4.5 KB
Newer Older
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
1
package org.apache.mybatis.jpa.persistence;
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * PageResults 前端控件的组装类,可以和JqGrid结合
 * 需要提供
 * 		1、当前页码 currentPage
 * 		2、每页显示记录数 pageResults
 * 		3、总记录数 recordsCount
 * 		4、记录的列表 List<T> rows
 * 		5、当前页记录数 total
 * @author Crystal.Sea
 *
 * @param <T>
 */
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
20 21
public  class JpaPageResults <T>{
	private final Logger _logger = LoggerFactory.getLogger(JpaPageResults.class);
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
22 23 24 25 26 27 28 29 30 31 32 33 34 35
	
	private int page=0;//当前页
	
	private int total=0;//当前页记录数
	
	private int totalPage=0;//总页数
	
	private Long records=0L;//总记录数
	
	private List<T> rows;//记录列表
	
	/**
	 * 
	 */
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
36
	public JpaPageResults() {
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
37 38 39 40 41 42 43 44
		_logger.debug("Grid.");
		
	}
	/**
	 * @param currentPage
	 * @param pageResults
	 * @param recordsCount
	 */
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
45
	public JpaPageResults(int currentPage,int pageResults,Long recordsCount) {
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
46 47 48 49 50 51 52 53 54 55
		pageCount(currentPage,pageResults, recordsCount);
		_logger.debug("Grid page : "+page+" , records : "+records+" , total : "+total);
	}
	/**
	 * 构造函数
	 * @param currentPage
	 * @param pageResults
	 * @param recordsCount
	 * @param rows
	 */
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
56
	public JpaPageResults(int currentPage,int pageResults,Long recordsCount,List<T> rows) {
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
57 58 59 60 61 62 63 64 65 66 67
		pageCount(currentPage,pageResults, recordsCount);
		this.rows=rows;
	}
	
	/**
	 * 构造函数
	 * @param currentPage
	 * @param pageResults
	 * @param recordsCount
	 * @param rows
	 */
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
68
	public JpaPageResults(int currentPage,int pageResults,Integer recordsCount,List<T> rows) {
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
69 70 71 72 73 74 75 76 77 78 79 80
		pageCount(currentPage,pageResults, recordsCount);
		this.rows=rows;
	}
	
	/**
	 * 构造函数
	 * @param currentPage
	 * @param pageResults
	 * @param totalPage
	 * @param recordsCount
	 * @param rows
	 */
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
81
	public JpaPageResults(int currentPage,int pageResults,int totalPage,Long recordsCount,List<T> rows) {
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
82 83 84 85 86 87 88 89 90 91 92 93 94
		pageCount(currentPage,pageResults, recordsCount);
		this.rows=rows;
		this.totalPage=totalPage;
	}
	
	/**
	 * 构造函数
	 * @param currentPage
	 * @param pageResults
	 * @param totalPage
	 * @param recordsCount
	 * @param rows
	 */
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
95
	public JpaPageResults(int currentPage,int pageResults,int totalPage,Integer recordsCount,List<T> rows) {
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
		pageCount(currentPage,pageResults, recordsCount);
		this.rows=rows;
		this.totalPage=totalPage;
	}
	
	/**
	 * 计算分页信息
	 * @param currentPage
	 * @param pageResults
	 * @param recordsCount
	 */
	public void pageCount(int currentPage,int pageResults,Long recordsCount){
		this.page=currentPage;
		//通过总记录数和每页显示记录数计算出当前页记录数
		this.total=(int) ((recordsCount%pageResults>0)?recordsCount/pageResults+1:recordsCount/pageResults);
		this.records=recordsCount;
	}
	
	/**
	 * 计算分页信息
	 * @param currentPage
	 * @param pageResults
	 * @param recordsCount
	 */
	public void pageCount(int currentPage,int pageResults,Integer recordsCount){
		this.page=currentPage;
		//通过总记录数和每页显示记录数计算出当前页记录数
		this.total=(int) ((recordsCount%pageResults>0)?recordsCount/pageResults+1:recordsCount/pageResults);
		this.records=Long.parseLong(recordsCount+"");
	}
	/**
	 * @return the page
	 */
	public int getPage() {
		return page;
	}
	/**
	 * @param page the page to set
	 */
	public void setPage(int page) {
		this.page = page;
	}
	/**
	 * @return the total
	 */
	public int getTotal() {
		return total;
	}
	/**
	 * @param total the total to set
	 */
	public void setTotal(int total) {
		this.total = total;
	}
	/**
	 * @return the totalPage
	 */
	public int getTotalPage() {
		return totalPage;
	}
	/**
	 * @param totalPage the totalPage to set
	 */
	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}
	/**
	 * @return the records
	 */
	public Long getRecords() {
		return records;
	}
	/**
	 * @param records the records to set
	 */
	public void setRecords(Long records) {
		this.records = records;
	}
	/**
	 * @return the rows
	 */
	public List<T> getRows() {
		return rows;
	}
	/**
	 * @param rows the rows to set
	 */
	public void setRows(List<T> rows) {
		this.rows = rows;
	}
	@Override
	public String toString() {
M
Highgo  
MaxKey 已提交
188 189 190 191 192 193 194 195 196 197 198 199 200 201 202
		StringBuilder builder = new StringBuilder();
		builder.append("JpaPageResults [_logger=");
		builder.append(_logger);
		builder.append(", page=");
		builder.append(page);
		builder.append(", total=");
		builder.append(total);
		builder.append(", totalPage=");
		builder.append(totalPage);
		builder.append(", records=");
		builder.append(records);
		builder.append(", rows=");
		builder.append(rows);
		builder.append("]");
		return builder.toString();
MaxKey单点登录官方's avatar
MaxKey单点登录官方 已提交
203 204 205 206 207
	}
	


}