把查询到的数据分页显示出来,但是由于数据量过大,也就是数据库中count(*)是出不来的,导致无法分页显示,所以要自己写个Page封装方法,没有总数量的那种,在页面只能点击下一页自动加载数据,这个封装的Page方法改怎么写啊?小弟刚刚出来实习 勿喷!
解决方案 »
- spring mvc中如何获取Response对象
- 求,pusulet的使用方法
- 我用JAVA开发的jain-sip客户端怎么跟Trixbox通信交互,最好有代码
- 什么是动态代理啊?能给个实例吗?
- 基于RBAC的权限系统 J2EE实现 大家看这样设计表结构合理吗?(急)
- ssh 整合问题
- 在Properties、HashMap、Hashtable、Map之间如何选择?
- 讨论:如何解决:hibernate处理one-to-one的机制 和现有的实际情况...(内详)
- 关于容器内对象之间的访问
- 关于Struts配置文件的问题,高手请进
- swing中的fixtable中,有否选中一个cell,可以得到前一个失去焦点的cell的处理?
- Spring 配置过程中的异常
http://blog.csdn.net/yyw6637/article/details/8794599
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就查不到数据了!
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);
}
这是一个封装好的方法 但是现在已近不能用这个方法了