在开发中有时需要将数据库中的数据显示到页面中,数据中的数据又比较多,使用一页是显示不了的。此时需要在数据库中分页查询,然后分页显示在页面中。如果使用一个通用的分页工具类,会比较方便。只需在创建该类时传入每页显示的行数,总行数(数据库中的数据总行数),以及当前页码。就可以求出总页数,并且对传入的页码数进行判断。
PageBean分页工具类
package com.book.Until;
import java.util.List;
/**
* 分页工具类 泛型类
* @param <T>
*/
public class PageBean<T> {
private List<T> lists;// 存放 需要显示的 实体类数据
private Integer pageNo = 1;// 当前页码数(默认给1)
private Integer pageSize; // 每页显示的行数
private Integer totalPage;// 总页数
private Integer rows;// 总行数
//对私有属性的封装
// 不需要对外提供totalPage总页数的set方法 因为totalPage是根据 总行数 和 每页显示的行数求出来的
public List<T> getLists() {
return lists;
}
public void setLists(List<T> lists) {
this.lists = lists;
}
public Integer getPageNo() {
return pageNo;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getTotalPage() {
return totalPage;
}
public Integer getRows() {
return rows;
}
//设置有行数据 并求出页数
public void setRows(Integer rows) {
this.rows = rows;
//页数 根据传入的 总行数 以及 每页显示的行数 求出总页数
this.totalPage=rows % pageSize==0 ? rows/pageSize : (rows/pageSize+1);
}
//设置页码
public void setPageNo(Integer pageNo) {
//如果传入的页码为空 或者小于0 就默认给 1
if (null == this.pageNo || this.pageNo < 0)
this.pageNo = 1;
//如果当前页码数>总页码数 就让 当前页码数 等于 最大页码数
else if (this.pageNo > this.totalPage && this.pageNo > 0)
this.pageNo = this.totalPage;
//都符合条件 就让 当前页码数 等于 传入的页码数
else
this.pageNo = pageNo;
}
}
简单的分页工具就完成了!
分页工具的使用
PS:在上图只需要关注步骤和其中一些方法的作用即可。至于方法以及参数,不需要太过深究。结果都是通过用户层传过来的数据,调用dao层的方法来实现数据访的,最后将数据返还给用户。根据自己的需求而定。
每日鸡汤:你所看到的就是最合理的安排,不必忿忿不平,不用念念不忘,不需斤斤计较!
Over!