Hibernate支持类中的分页查询的实现
2014-12-31 03:12
323 查看
Hibernate支持类的实现
package com.myHibernateDao; import java.sql.SQLException; import java.util.List; import javax.annotation.Resource; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class MyHibernateDaoSupport extends HibernateDaoSupport{ @Resource(name="sessionFactory") public void setSuperSessionFactory(SessionFactory sessionFactory){ super.setSessionFactory(sessionFactory); } /** * 使用hql 语句进行分页查询操作 * @param hql 需要查询的hql语句 * @param offset 第一条记录索引 * @param pageSize 每页需要显示的记录数 * @return 当前页的所有记录 */ @SuppressWarnings("unchecked") 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 语句进行分页查询操作 * @param hql 需要查询的hql语句 * @param value 如果hql有一个参数需要传入,value就是传入的参数 * @param offset 第一条记录索引 * @param pageSize 每页需要显示的记录数 * @return 当前页的所有记录 */ @SuppressWarnings("unchecked") public List findByPage(final String hql , final Object value , 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) .setParameter(1, value) .setFirstResult(offset) .setMaxResults(pageSize) .list(); return result; } }); return list; } /** * 使用hql 语句进行分页查询操作 * @param hql 需要查询的hql语句 * @param values 如果hql有多个个参数需要传入,values就是传入的参数数组 * @param offset 第一条记录索引 * @param pageSize 每页需要显示的记录数 * @return 当前页的所有记录 */ @SuppressWarnings("unchecked") 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 + 1 , values[i]); } List result = query.setFirstResult(offset) .setMaxResults(pageSize) .list(); return result; } }); return list; } @SuppressWarnings("unchecked") public List findByTop(final String hql,final int top) { List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { List result = session.createQuery(hql) .setFirstResult(0) .setMaxResults(top) .list(); return result; } }); return list; } }
相关文章推荐
- Hibernate分页的实现(支持模糊查询)
- 实现Hibernate分页查询原理解读
- Hibernate 可以实现分页查询
- 使用 HibernateTemplate 实现分页查询 (HibernateCallback接口)
- C#分页面向对象封装[支持多表连接查询分页]-教学示范版--分页实现
- Hibernate实现分页查询的原理分析zz
- Hibernate实现分页查询的原理分析
- Hibernate 实现分页查询
- 在用hibernate实现oracle 分页查询时报错ORA-00923: FROM keyword not found where expected
- 实现Hibernate分页查询原理解读
- 实现Hibernate分页查询原理解读
- 应用Hibernate3的DetachedCriteria实现分页查询
- 实现Hibernate分页查询原理解读
- hibernate(jpa)根据实体动态生成查询条件,并实现分页问题的解决方案
- 实现Hibernate分页查询原理解读
- 实现Hibernate分页查询原理解读
- 实现Hibernate分页查询原理解读
- 应用Hibernate3的DetachedCriteria实现分页查询
- 实现Hibernate分页查询原理解读
- Hibernate实现分页查询的原理分析