Hibernate如何查询/显示count()的值 20

数据库里2个表。我要统计出2个表的数据。SQL语句如下selectclry,count(clry)fromRcwhBgroupbyclrygoselectclry,cou... 数据库里2个表。我要统计出2个表的数据。SQL语句如下
select clry,count(clry) from RcwhB group by clry
go
select clry,count(clry) from DmtwhB group by clry
--------------------------------------------------
查询结果为:
张三 5
李四 2
王五 9
----------------------
张三 6
李四 3
周六 9

如何将2句SQL语句合并为一句?用HQL该怎么写?
Servlet中
request.setAttribute("rcwh_Load_All_Count", list);之后
页面如何显示出count(clry)的值
(clry我知道怎么显示,就不用说了,问题是count(clry)的值在表中没有字段与其对应。该怎么显示出来。)
请看清楚提问,最好能给出合并之后的HQL和页面显示的代码。
如果能解决。将追加5倍的分数作为酬谢
展开
 我来答
lydawen
2010-05-13 · TA获得超过3181个赞
知道大有可为答主
回答量:2678
采纳率:50%
帮助的人:1491万
展开全部
select clry,count(clry) countlcry from DmtwhB group by clry;

给它一个别名。即countlcry,然后就跟你clry一样用就行了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秀乞群群
推荐于2018-03-29 · TA获得超过19万个赞
知道顶级答主
回答量:6.7万
采纳率:91%
帮助的人:2.4亿
展开全部
解决方案:
Java代码
Configuration classicCfg = new Configuration();
classicCfg.addSqlFunction( "count", new ClassicCountFunction());
classicCfg.addSqlFunction( "avg", new ClassicAvgFunction());
classicCfg.addSqlFunction( "sum", new ClassicSumFunction());
SessionFactory classicSf = classicCfg.buildSessionFactory();


Java代码
//int count = ((Integer)query.uniqueResult()).intValue();
//改成
int count = ((Number)query.uniqueResult()).intValue();
//这样就可以两个版本同时兼容.

//第一种方法:
String hql = "select count(*) from User as user";
Integer count = (Integer)getHibernateTemplate().find(hql).listIterator().next();
return count.intValue();

//第二种方法:
String hql = "select count(*) from User as user";
return ((Integer)getHibernateTemplate().iterate(hql).next()).intValue();

//第三种方法:
String hql = "select count(*) from User as user";
Query query = getHibernateTemplate().createQuery( getSession(),hql);
return ((Integer)query.uniqueResult()).intValue();
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a668673
2010-05-13 · TA获得超过527个赞
知道小有建树答主
回答量:425
采纳率:0%
帮助的人:346万
展开全部
1、你这两个表有没有关系,没有关系的话,Hibernate不可能合并到一张表中,或者说很不容易合并到一张中...你可以先想想你那两句SQL怎么合并...结构都不知道,怎么合并...

2、问题是count(clry)的值在表中没有字段与其对应
返回的是Object[]类型的东东,你自己根据你的HQL转换一下就可以,不需要与表对应
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e337bc877
2010-05-13 · TA获得超过172个赞
知道小有建树答主
回答量:209
采纳率:0%
帮助的人:168万
展开全部
这个问题我以前也遇到过,比你的复杂些,用hql试了n种方法都行不通,后来用 sql搞定

Session session = this.getHibernateTemplate().getSessionFactory().openSession();

List list = session.createSQLQuery(sql).list();

<c:forEach var="li" item="${list}">
${li[0]}${li[1]}
</c:forEach>
楼主试试吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式