Hibernate分页

来源:互联网 发布:英雄联盟for mac国服 编辑:程序博客网 时间:2024/06/07 05:08
public class BaseDAO extends HibernateDaoSupport{/** * 使用hql 语句进行分页查询操作 * @param hql 需要查询的hql语句 * @param offset 第一条记录索引 * @param 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 语句进行分页查询操作 * @param hql 需要查询的hql语句 * @param value 如果hql有一个参数需要传入,value就是传入的参数 * @param offset 第一条记录索引 * @param pageSize 每页需要显示的记录数 * @return 当前页的所有记录 */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(0, value) .setFirstResult(offset)                 .setMaxResults(pageSize) .list();return result;}});return list;}/** * 使用hql 语句进行分页查询操作 * @param hql 需要查询的hql语句 * @param values 如果hql有多个个参数需要传入,values就是传入的参数数组 * @param offset 第一条记录索引 * @param 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;}}

0 0
原创粉丝点击