Hibernate页面数据分页显示

package com.huike.hidp.util;

 

import java.util.List;

 

import org.hibernate.HibernateException;

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;

}

/**

* 使用hql语句进行分页查询

* @param hql 需要查询的hql语句

* @param value 如果hql 有一个参数需要传入,value就是传入Hql语句的参数

 

* @param offset 第一条记录索引

 

* @param pageSize 每页需要显示的记录条数

* @return 当前页的所有记录

 

*/

public List findByPage(final String hql,final Object value,

              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)

                    .setParameter(0, value)

                    .setFirstResult(offset)

                    .setMaxResults(pageSize)

                    .list();

return result;

}

}

);

return list;

}

/**

* 使用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{

//执行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;

}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值