- 论坛徽章:
- 0
|
大家好,我希望实现的是统计功能,对各国所举办的会议数量进行计算,sql语句是:
select conferencecountry, count(conferencecountry) as count from meetings.ssh.model.TConference where conferencecountry is not null group by conferencecountry order by count(conferencecountry) desc
这里count是统计所需的新增临时字段。错误现象是:在JSP页面上无法显示统计结果。但是控制台上已经能够打印出两个字段的信息:
美国
30
马来西亚
5
。。。。。。
另外在model里我也加了count字段的定义和映射。只不过表里本身并没有count字段。我不知道是JSP页面标签错误,还是对检索结果集操作的问题。下面把代码贴出来。麻烦大家了!
Action层-
- 1. public String statistic() throws Exception {
- 2. String orderby = "count(" + queryName + ")";
- 3. String groupby = queryName;
- 4. String sortby = "desc";
- 5. availableItems = tconferenceService.statistic(TConference.class, "id", queryName, groupby, orderby, sortby);
- 6. return SUCCESS;
- 7. }
复制代码 DAO Impl层
- public List<T> statistic(Class<T> entityClass, ID id, String fieldname, String groupby, String orderby, String sortby){
- final String entityname = entityClass.getName();
- System.out.println(entityname);
- final String queryName = fieldname;
- final String group = groupby;
- final String order = orderby;
- final String sort = sortby;
- return this.getHibernateTemplate().executeFind(new HibernateCallback() {
- public List doInHibernate(Session session) throws HibernateException, SQLException {
- Object[] obj = null;
- Query query = session.createQuery("select " + queryName + ", count(" + queryName + ") as count from " + entityname + " where " + queryName + " is not null group by " + group + " order by " + order + " " + sort);
- System.out.println("query=" + query);
- query.setFirstResult(0);
- query.setMaxResults(10);
- List names = query.list();
- Iterator iterator = names.iterator();
- while(iterator.hasNext()){
- obj = (Object[])iterator.next();
- query.list().add(obj);
- }
- return query.list();
- }
- });
- }
复制代码 JSP层- <s:iterator value="availableItems" status="tConference">
- <tr>
- <td align="center"><s:property value="#tConference.count" /></td>
- <!-- 显示国家名称 -->
- <td align="center"><s:property value="conferencecountry" /></td>
-
- <!-- 显示举办会议数量 -->
- <td align="center"><s:property value="count" /></td>
- </tr>
- </s:iterator>
复制代码 |
|