Welcome 微信登录

首页 / 软件开发 / JAVA / Hibernate分页的设计和编码

Hibernate分页的设计和编码2011-09-181. 当前页码的表单参数 listuser.do?page=2

同时转换成一个 int 类型的页码变量

int currentPage = Integer.parseInt(

request.getParameter("page");// 当前页

2. 下一页 listuser.do?page=${currentPage+1}

上一页 listuser.do?page=${currentPage-1}

3. 一页显示多少数据

int pageSize = 5;//每页显示的数据数

4. 总页数 totalPage

1) 先从数据库取得总记录数

dao.UserDAO#getUserTotalCount()

int totalCount = executeQuery("select count(*) from Users");

2) 根据一页的数据类计算出总页数

dao.UserManager#getTotalPage(int pageSize)
// 得到页面总数
int totalPageCount = ((totalCount + pageSize) - 1) / pageSize;
if(totalPageCount == 0) {
totalPageCount = 1;
}

5. 从数据库里把第currentPage页的数据读取出来(Hibernate), DAO 层的代码

dao.UserDAO#findPagedAll(int currentPage, int pageSize)

两个参数: currentPage 当前页(从1开始的)

pageSize 取多少数据

String queryString = "from User";
Query queryObject = getSession().createQuery(queryString);
queryObject.setFirstResult((currentPage - 1) * pageSize);
queryObject.setMaxResults(pageSize);
List result = queryObject.list();