把查询到的数据分页显示出来,但是由于数据量过大,也就是数据库中count(*)是出不来的,导致无法分页显示,所以要自己写个Page封装方法,没有总数量的那种,在页面只能点击下一页自动加载数据,这个封装的Page方法改怎么写啊?小弟刚刚出来实习  勿喷!

解决方案 »

  1.   

    http://blog.csdn.net/yyw6637/article/details/8807924
    http://blog.csdn.net/yyw6637/article/details/8794599
      

  2.   

    看了楼上的连接  我想要的不是一般的Page方法  那些都是必须要得到数据的总数量的,而我就是由于得不到总数量
         String hql = "from FactWapHourCdr1 fw1 where ";    String searchTerm = "fw1.timeId>=" + startTime + "";
    if (endTime != null && !endTime.equals(""))
    searchTerm = searchTerm + " and fw1.timeId<=" + endTime+ ""; if (URL != null && !URL.equals(""))
    searchTerm = searchTerm + " and fw1.url='" + URL + "' and rownum<= 100";

    hql = hql + searchTerm; _log.info(hql);
    return pagedQuery(hql, pageNumber, pageSize);如果没有rownum<= 100就查不到数据了!
      

  3.   

    什么数量级的竟然得不到count(*)
      

  4.   

    大哥们   反正在数据库中count(*)就是出不来  
    select count(*) from FACT_WAP_HOUR_CDR1 where URL='http://r.admob.com/ad_source.php'and TIMEID>= 201305050000 and TIMEID <= 201305050001;
    最简单的查询一分钟之内的数据数量都查不出来,
    public Page pagedQuery(String hql, int pageNo, int pageSize,
    Object... values) {
    Assert.hasText(hql);
    Assert.isTrue(pageNo >= 1, "pageNo should start from 1");
    // Count查询
    String countQueryString = " select count (*) "
    + removeSelect(removeOrders(hql));
    List countlist = getHibernateTemplate().find(countQueryString, values);
    long totalCount = (Long) countlist.get(0); if (totalCount < 1)
    return new PageObject();
    // 实际查询返回分页对象
    int startIndex = PageObject.getStartOfPage(pageNo, pageSize);
    Query query = createQuery(hql, values);
    // List list =
    // query.setFirstResult(startIndex).setMaxResults(pageSize).list();
    List list = null;
    try {
    list = query.setFirstResult(startIndex).setMaxResults(pageSize)
    .list();
    } catch (Exception e) {
    System.out
    .println("*********pagedQuery Exception" + e.getMessage());
    list = null;
    }
    if (list == null) {
    list = new ArrayList();
    } return new PageObject(list, totalCount, pageNo, pageSize);
    }
    这是一个封装好的方法  但是现在已近不能用这个方法了
      

  5.   

    select count(*) from FACT_WAP_HOUR_CDR1 where URL='http://r.admob.com/ad_source.php'and TIMEID>= 201305050000 and TIMEID <= 201305050001;红色标记的地方少一个空格
      

  6.   

    大哥  这是我手打的 select count(*) from FACT_WAP_HOUR_CDR1 where URL='http://r.admob.com/ad_source.php' and TIMEID>= 201305050000 and TIMEID <= 201305050001;  这样可以了吧  难道你们就们没有遇到过这样的情况?  求解决啊
      

  7.   

    现在的人怎么了,有求于人说话还这么听起来不舒服,呵呵,自求多福吧!不好意思  因为是新手   布置的任务规定时间完成不了   自己很纠结   以后多注意!! I'm so sorry!