package com.huike.hidp.util;
import org.hibernate.query;
import org.hibernate.session;
import org.springframework.orm.hibernate3.hibernatecallback;
import org.springframework.orm.hibernate3.support.hibernatedaosupport;
/**
* 页面数据分页显示
* @author
* @date 2009-5
*/
public class paginationhibernatedaosupport extends hibernatedaosupport {
* 使用hql语句进行分页查询
* @param hql 需要查询的hql语句
* @param offset 第一条记录索引
* @param pagesize 每页需要显示的记录条数
* @return 当前页的所有记录
public list findbypage(final string hql,final int offset,final int pagesize){
//通过一个hibernatecallback 对象来执行查询
list list = gethibernatetemplate().executefind(new hibernatecallback()
{
//实现hibernatecallback接口必须实现的方法
public object doinhibernate(session session) throws hibernateexception{
//执行hibernate 分页查询
list result = session.createquery(hql)
.setfirstresult(offset)
.setmaxresults(pagesize)
.list();
return result;
}
);
return list;
* @param value 如果hql 有一个参数需要传入,value就是传入hql语句的参数
public list findbypage(final string hql,final object value,
final int offset,final int pagesize){
.setparameter(0, value)
* @param values 如果hql有多个参数需要传入,values 就是传入hql的参数组
public list findbypage(final string hql,final object[] values,
query query = session.createquery(hql);
//为hql语句传入参数
for(int i=0; i < values.length; i++){
query.setparameter(i, values[i]);
list result = query.setfirstresult(offset)