先说明一下hibernate实现分页的原理,假如数据库中有50条数据,每页显示10条数据,假如我们查询第3页的数据那么应该从21开始,往后查10条数据,只需要设置起始位置和每页显示数量即可。下面我们来看一下例子.
public List getPagination(String hql,int start,int count){
Query query=this.sessionFactory.getCurrentSession().createQuery(hql);
return query.setMaxResults(count).setFirstResult(start).list();
}
上面这个方法参数start表示起始位置,参数count表示每页显示数量。最重要的setMaxResults(),和setFirstResult(),分别是设置显示数量和起始位置。
下面是一个分页工具类。
package com.creditease.controller.utlis;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Pagination {
private int currentPage=0; // 当前页
private int pageSize=10; // 每页要求最多显示的记录
private int total; // 查询 数据库 得到的所有 记录总数
private List rows; // 查询 得到 本页的数据,返回一个 装有po对象的 List
private int pa