getHibernateTemplate如何执行聚合函数,或者count总的数据量

laihuangxi 2008-10-13 10:01:01
我看大多数人用这样的代码,select count(id) from Table where 这样的效率高吗?
getHibernateTemplate能不能不用回调,用其它办法有吗? getHibernateTemplate().findByCriteria可以吗?谢谢


public int getCount(String condi1, String condi2) {
getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException,
SQLException {
String q = "select count(id) from Table where " + condition1
+ "=" + condi1;
Query query = s.createQuery(q);
return (Integer) query.uniqueResult();
}
});
return 0;
}

...全文
819 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zidasine 2008-10-13
  • 打赏
  • 举报
回复

public int getCount(String condi1, String condi2) {
return (Integer)getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException,
SQLException {
String q = "select count(id) from Table where " + condition1
+ "=" + condi1;
Query query = s.createQuery(q);
return query.uniqueResult();
}
});
}


应该是这样吧
dreamhunter_lan 2008-10-13
  • 打赏
  • 举报
回复
想要count(*)还是用session吧,其他的地方用getHibernateTemplate就好
無名VF 2008-10-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 laihuangxi 的帖子:]
我看大多数人用这样的代码,select count(id) from Table where 这样的效率高吗?
getHibernateTemplate能不能不用回调,用其它办法有吗? getHibernateTemplate().findByCriteria可以吗?谢谢
[/Quote]

效率应该还可以 就跟你直接使用SQL语句一样count(*)和count(id)的效率其实都是差不多的
meadking 2008-10-13
  • 打赏
  • 举报
回复
Integer v = (Integer) getHibernateTemplate().execute
你的是.executeFind这样返回的是List,不行的!!!
meadking 2008-10-13
  • 打赏
  • 举报
回复
String condi1, String condi2
要声明为final,否则方法内部类不能访问这个变量
meadking 2008-10-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 laihuangxi 的帖子:]
getHibernateTemplate能不能不用回调,用其它办法有吗? getHibernateTemplate().findByCriteria可以吗?谢谢
[/Quote]

没有其它办法了,
可以iterator出来,不过效果和select count(id) 差不多
getHibernateTemplate()返回的都是list,没有单个的

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧