qq_21491991
2015-06-17 01:46
采纳率: 38.5%
浏览 2.1k
已采纳

SSH 怎么用hql实现分页 急

SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急SSH 怎么用hql实现分页 急

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • On_Code 2015-06-17 02:18
    已采纳

    、在ArticleDao中添加分页查询的方法:

    /**
    * 分页查询
    * @param hql 查询的条件
    * @param offset 开始记录
    * @param length 一次查询几条记录
    * @return
    */
    public List queryForPage(final String hql,final int offset,final int length);

    /** *//**
     * 查询所有记录数
     * @param hql 查询的条件
     * @return 总记录数
     */
    public int getAllRowCount(String hql);
    

    二、在ArticleDaoImpl中给出相应方法的具体实现:

    /**

    • 查询所有记录数 *
    • @return 总记录数 */ public int getAllRowCount(String hql) { return getHibernateTemplate().find(hql).size(); }

    /**

    • 分页查询 *
    • @param hql
    • 查询的条件
    • @param offset
    • 开始记录
    • @param length
    • 一次查询几条记录
    • @return */ public List queryForPage(final String hql, final int offset, final int length) { List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(hql); query.setFirstResult(offset); query.setMaxResults(length); List list = query.list(); return list; } }); return list; }

    三、在ArticleService中添加方法分页查询的方法:

    /**
    * 分页查询
    * @param currentPage 当前第几页
    * @param pageSize 每页大小
    * @return 封闭了分页信息(包括记录集list)的Bean
    */
    public PageBean queryForPage(int pageSize,int currentPage);

    四、在ArticleServiceImpl中给出相应方法的具体实现:

    /**

    • 分页查询
    • @param currentPage 当前第几页
    • @param pageSize 每页大小
    • @return 封闭了分页信息(包括记录集list)的Bean
      */
      public PageBean queryForPage(int pageSize,int page){

      final String hql = "from Article";

      int allRow = articleDao.getAllRowCount(hql);

      int totalPage = PageBean.countTotalPage(pageSize, allRow);

      final int offset = PageBean.countOffset(pageSize, page);

      final int length = pageSize;

      final int currentPage = PageBean.countCurrentPage(page);
      List list = articleDao.queryForPage(hql,offset, length); //"一页"的记录

      //把分页信息保存到Bean中
      PageBean pageBean = new PageBean();
      pageBean.setPageSize(pageSize);

      pageBean.setCurrentPage(currentPage);
      pageBean.setAllRow(allRow);
      pageBean.setTotalPage(totalPage);
      pageBean.setList(list);
      pageBean.init();

      return pageBean;
      }

    最后一步,根据需要,在分页页面上的相应位置进行配置。基本配置如下:


    首页
    上一页
    /s:if
    首页
    [url=...?page=上一页[/url]

    /s:else



    ">下一页


    ">尾页


    /s:if
    下一页
    尾页
    /s:else

    共 value="pageBean.allRow" />条记录, value="pageBean.totalPage" />页

    至此,网站的分页功能就完成了。

    评论
    解决 无用
    打赏 举报
  • 查看更多回答(5条)

相关推荐 更多相似问题