基于HibernateDaoSupport的三个分页控制方法

来源:互联网 发布:怎样下载淘宝网到ipad 编辑:程序博客网 时间:2024/05/20 05:45
直接继承这个工具类就可以了。package cn.jzy.util;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.support.HibernateDaoSupport;/** * 基于HibernateDaoSupport的三个分页控制方法 * @author Zhang * */public  class PageDao extends HibernateDaoSupport {/** * 使用HQL语句进行分页查询操作 * pageIndex 第一条记录的索引 * pageSize 每页需要显示的记录数 * @return 当前页的所有记录 */public  List findByPage(final String hql, final int pageIndex, final int pageSize){List list = getHibernateTemplate().executeFind(new HibernateCallback() {public Object doInHibernate(Session session) throws HibernateException,SQLException {List result = session.createQuery(hql).setFirstResult((pageIndex-1)*pageSize).setMaxResults(pageSize).list();return result;}});return list;}/** * 使用HQL语句进行分页查询操作 * value 如果HQL有一个参数需要传入,则value就是传入的参数 * pageIndex 第一条记录的索引 * pageSize 每页需要显示的记录数 * @return 当前页的所有记录 */public List findByPage(final String hql, final Object value,  final int pageIndex, 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((pageIndex-1)*pageSize).setParameter(0, value).setMaxResults(pageSize).list();return result;}});return list;}/** * 使用HQL语句进行分页查询操作 * values 如果HQL有多个参数需要传人,则values就是传人的参数数组 * pageIndex 第一条记录的索引 * pageSize 每页需要显示的记录数 * @return 当前页的所有记录 */public List findByPage(final String hql, final Object[] values,  final int pageIndex, 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(pageIndex).setMaxResults(pageSize).list();return result;}});return list;}}

0 0
原创粉丝点击