论坛首页 入门技术论坛

hibernate与spring整合后通用分页查询方法

浏览 2698 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-01-28   最后修改:2010-01-28
/**
	 * @version 1.0
	 * @author iam00@qq.com
	 * @create Jan 28, 2010
	 * @since java 1.6
	 * @param hql
	 *            查询要用的hql语句
	 * @param pageNo
	 *            第几页
	 * @param maxRow
	 *            每页的最大行数
	 * @param args
	 *            hql语句中占位符的实际值
	 */
    // 通过给定的参数分页查询数据,其中template是org.springframework.orm.hibernate3.HibernateTemplate
    @SuppressWarnings("unchecked")
    public List getPageList(final String hql, final Integer pageNo,
            final Integer maxRow, final Object[] args) {
        // 这个方法返回结果是个Object,强转为需要类型
        return (List) template.execute(new HibernateCallback() {
            public Object doInHibernate(Session session)
                    throws HibernateException, SQLException {
                // 创建一个query并设置分页的参数
                Query query = session.createQuery(hql).setFirstResult(
                        (pageNo - 1) * maxRow).setMaxResults(maxRow);
                
                // 若hql语句中没有使用占位符,直接返回查询结果
                // 若hql语句中使用了占位符,将这些参数逐个放入hql中,并返回查询结果
                if (args != null)
                  for (int i = 0; i < args.length; i++)
                      query.setParameter(i, args[i]);
                return query.list();
            }
        });
    }
   发表时间:2010-02-02  
应该还有一个计算总行数的查询……不然你怎么知道总共有多少页?
0 请登录后投票
   发表时间:2010-02-02  
jashawn 写道
应该还有一个计算总行数的查询……不然你怎么知道总共有多少页?

嗯,应该是有一个
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics