教我写一个新手看的懂的分页工具类,语言是java,要求注释详细,当前页用pageNo,每页条数用pageSize
时间: 2023-05-25 07:05:57 浏览: 73
好的,这是一个简单易懂的分页工具类,注释非常详细,可以帮助新手学习使用。代码如下:
```
/**
* 分页工具类
*/
public class PageUtils<T> {
// 当前页码,默认为1
private int pageNo = 1;
// 每页显示的记录数,默认为10
private int pageSize = 10;
// 总记录数
private int totalCount;
// 总页数
private int totalPage;
// 当前页的数据集合
private List<T> list;
/**
* 构造方法,需要传入当前页码和每页显示的记录数
*/
public PageUtils(int pageNo, int pageSize) {
this.pageNo = pageNo;
this.pageSize = pageSize;
}
/**
* 获取当前页码
*/
public int getPageNo() {
return pageNo;
}
/**
* 设置当前页码
*/
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
/**
* 获取每页记录数
*/
public int getPageSize() {
return pageSize;
}
/**
* 设置每页记录数
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
/**
* 获取总记录数
*/
public int getTotalCount() {
return totalCount;
}
/**
* 设置总记录数,并计算总页数
*/
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
this.totalPage = (int) Math.ceil((double) totalCount / pageSize);
}
/**
* 获取总页数
*/
public int getTotalPage() {
return totalPage;
}
/**
* 获取当前页的数据集合
*/
public List<T> getList() {
return list;
}
/**
* 设置当前页的数据集合
*/
public void setList(List<T> list) {
this.list = list;
}
/**
* 获取起始记录的索引值
*/
public int getStartIndex() {
return (pageNo - 1) * pageSize;
}
/**
* 获取结束记录的索引值
*/
public int getEndIndex() {
return pageNo * pageSize;
}
/**
* 是否有上一页
*/
public boolean hasPrevious() {
return pageNo > 1;
}
/**
* 上一页页码
*/
public int getPreviousPage() {
return hasPrevious() ? pageNo - 1 : pageNo;
}
/**
* 是否有下一页
*/
public boolean hasNext() {
return pageNo < totalPage;
}
/**
* 下一页页码
*/
public int getNextPage() {
return hasNext() ? pageNo + 1 : pageNo;
}
}
```
使用方法:
1. 创建分页工具类对象,需要传入当前页码和每页显示的记录数。
```java
PageUtils<User> pageUtils = new PageUtils<>(pageNo, pageSize);
```
2. 设置总记录数和当前页的数据集合。
```java
pageUtils.setTotalCount(totalCount);
pageUtils.setList(list);
```
3. 获取分页信息。
```java
int totalPage = pageUtils.getTotalPage(); // 总页数
int startIndex = pageUtils.getStartIndex(); // 起始记录的索引值
int endIndex = pageUtils.getEndIndex(); // 结束记录的索引值
boolean hasPrevious = pageUtils.hasPrevious(); // 是否有上一页
boolean hasNext = pageUtils.hasNext(); // 是否有下一页
int previousPage = pageUtils.getPreviousPage(); // 上一页页码
int nextPage = pageUtils.getNextPage(); // 下一页页码
List<User> userList = pageUtils.getList(); // 当前页的数据集合
```
希望对你有帮助!