Hibernate中的分页实现+++[使用hql语句进行分页查询]
/** * 使用hql语句进行分页查询 * @param hql 需要查询的hql语句 * @param values 如果hql有多个个参数需要传入,values就是传入hql的参数数组 * @param offset 第一条记录索引 * @param pageSize 每页需要显示的记录数 * @return 当前页的所有记录 */ public List findByPage(final String hql, final Object[] values, final int offset, final int pageSize) { //通过一个HibernateCallback对象来执行查询 List list = getHibernateTemplate() .executeFind(new HibernateCallback() { //实现HibernateCallback接口必须实现的方法 public Object doInHibernate(Session session) throws HibernateException, SQLException { //执行Hibernate分页查询 Query query = session.createQuery(hql); //为hql语句传入参数 for (int i = 0 ; i < values.length ; i++) { query.setParameter( i, values[i]); } List result = query.setFirstResult(offset) .setMaxResults(pageSize) .list(); return result; } }); return list; } }
?