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

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条)

报告相同问题?

悬赏问题

  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64