分页工具类PageBean
作者:互联网
PageBean工具类
package cn.jin51.util;
import java.util.List;
/**
* 分页的三个基本属性
* 1、每页几条数据:size,默认值 5
* 2、当前页数:index,默认值 1
* 3、记录总数:totalCount,不可能有默认值,需要查询数据库,获取数据的总条数
* 4、一共多少页:totalPageCount = totalCount / size + 1
* 5、上一页:index - 1,当前页 1,上一页 1
* 6、下一页:index + 1,当前页是最后一页,下一页:还是最后一页
*
* 扩展
* 分页Bean可以放要查询的数据 protected List<T> list;
* 分页Bean可以放页码列表 [1] 2 3 4 5 private int[] numbers;
* @param <T>
*/
public class PageBean<T> {
/**
* 每页显示的数据条数
*/
private int size = 5;
/**
* 当前页数
*/
private int index = 1;
/**
* 总的页数
*/
private int totalPageCount = 1;
/**
* 数据的总条数
*/
private int totalCount = 0;
/**
* 展示页数的集合
*/
private int[] numbers;
/**
* 展示到页面的数据集合
*/
protected List<T> list;
/**
* 获取开始的数据
* @return
*/
public int getStartRow() {
return (index - 1) * size;
}
/**
* 获取结束的数据
* @return
*/
public int getEndRow() {
return index * size;
}
/**
* @return Returns the size.
*/
public int getSize() {
return size;
}
/**
* @param size The size to set.
*/
public void setSize(int size) {
if (size > 0) {
this.size = size;
}
}
/**
* @return Returns the currentPageNo.
*/
public int getIndex() {
if (totalPageCount == 0) {
return 0;
}
return index;
}
/**
* @param index The currentPageNo to set.
*/
public void setIndex(int index) {
if (index > 0) {
this.index = index;
}
}
/**
* @return Returns the totalCount.
*/
public int getTotalCount() {
return totalCount;
}
/**
* @param totalCount The totalCount to set.
*/
public void setTotalCount(int totalCount) {
if (totalCount >= 0) {
this.totalCount = totalCount;
// 根据总的数据条数,计算总的页数
setTotalPageCountByRs();
}
}
public int getTotalPageCount() {
return this.totalPageCount;
}
/**
* 根据总的数据条数,计算总的页数
*/
private void setTotalPageCountByRs() {
if (this.size > 0 && this.totalCount > 0 && this.totalCount % this.size == 0) {
this.totalPageCount = this.totalCount / this.size;
} else if (this.size > 0 && this.totalCount > 0 && this.totalCount % this.size > 0) {
this.totalPageCount = (this.totalCount / this.size) + 1;
} else {
this.totalPageCount = 0;
}
// 获取展示页数的集合
setNumbers(totalPageCount);
}
public int[] getNumbers() {
return numbers;
}
/**
* 设置显示页数集合
* 默认显示10个页码
* 41 42 43 44 [45 ] 46 47 48 49 50
* 1 2 3 [4] 5 6 7 8 9 10
* 41 42 43 44 45 46 47 [48] 49 50
* @param totalPageCount
*/
public void setNumbers(int totalPageCount) {
if (totalPageCount > 0) {
// 当前数组的长度
// 页面显示页数的集合
int[] numbers = new int[totalPageCount > 10 ? 10 : totalPageCount];
int k = 0;
/*
1、数组长度 < 10 1 2 3 4 .... 7
2、数组长度 >= 10
当前页 <= 6 1 2 3 4 10
当前页 >= 总页数 - 5 ...... 12 13 14 15
其它 5 6 7 8 9 当前页(10) 10 11 12 13
*/
for (int i = 0; i < totalPageCount; i++) {
// 保证当前页数,为集合中的页数
if ((i >= index - (numbers.length / 2 + 1) ||
i >= totalPageCount - numbers.length) &&
k < numbers.length) {
numbers[k] = i + 1;
k ++;
} else if (k >= numbers.length) {
break;
}
}
this.numbers = numbers;
}
}
public void setNumbers(int[] numbers) {
this.numbers = numbers;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
/*public static int getTotalPageCount(
int iTotalRecordCount, int iPageSize) {
if (iPageSize == 0) {
return 0;
} else {
return (iTotalRecordCount % iPageSize) == 0 ?
(iTotalRecordCount / iPageSize) :
(iTotalRecordCount / iPageSize) + 1;
}
}*/
}
标签:return,分页,int,totalCount,totalPageCount,PageBean,工具,public,size 来源: https://blog.csdn.net/weixin_30119925/article/details/113875882