package com.lbx.chat.paging; import java.sql.SQLException; 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.HibernateTemplate; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; /** * 基于HibernateDaoSupport的三个分页控制方法 * @author Administrator * */ public class PageDaoHibernateDaoSupport extends HibernateDaoSupport { /** * 使用HQL语句进行分页查询操作 * offset 第一条记录的索引 * pageSize 每页需要显示的记录数 * @return 当前页的所有记录 */ public List findByPage(final String hql, final int offset, final int pageSize){ List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { List result = session.createQuery(hql).setFirstResult(offset) .setMaxResults(pageSize) .list(); return result; } }); return list; } /** * 使用HQL语句进行分页查询操作 * value 如果HQL有一个参数需要传人,则value就是传人的参数 * offset 第一条记录的索引 * pageSize 每页需要显示的记录数 * @return 当前页的所有记录 */ public List findByPage(final String hql, final Object value, final int offset, final int pageSize){ //System.out.println("PageDaoHibernate.findByPage()"); List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { List result = session.createQuery(hql).setFirstResult(offset) .setParameter(0, value) .setMaxResults(pageSize) .list(); return result; } }); return list; } /** * 使用HQL语句进行分页查询操作 * values 如果HQL有多个参数需要传人,则values就是传人的参数数组 * offset 第一条记录的索引 * pageSize 每页需要显示的记录数 * @return 当前页的所有记录 */ public List findByPage(final String hql, final Object[] values, final int offset, final int pageSize){ List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(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; } }
hibernatedaosupport分页的三种实现
最新推荐文章于 2017-10-20 18:08:12 发布