hibernate分页的时候记录总数一般是如何统计的?

woolceo 2005-12-25 01:52:30
hibernate提供了很便捷的分页方式,通过setMaxResults等方法可以轻松实现分页。但是,在做分页方法时一般会用到记录总数(totalResults),这应该用什么方法统计呢?

我目前用的方法是在DAO类中加入一个方法,该方法执行sql语句例如:select sum(*) from table where × × ×;这样来获得记录总数,但感觉这么做每次获取记录总数都要select一次数据库,效率很低,请问大家是如何获取记录总数的。

有什么好的方法可以尽可能的不牺牲效率,却能保持良好的设计?
...全文
527 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
woolceo 2006-01-10
  • 打赏
  • 举报
回复
结贴了
woolceo 2006-01-09
  • 打赏
  • 举报
回复
楼上的,从可读性这方面考虑的话count(1)好像不太好。。。我是用count(c.ID)这种。。。习惯了。。。
didoleo 2006-01-08
  • 打赏
  • 举报
回复
我也是执行了两次,不过统计总记录数可以不必把所有字段都count进去,count(*)是把所有字段都算进去了,如果sum(1) 或者count(1)是不是好一点呢?
woolceo 2006-01-08
  • 打赏
  • 举报
回复
我最终妥协了,还是多执行了一次sql
woolceo 2005-12-28
  • 打赏
  • 举报
回复
顶。大家再讨论下。
lingfengtree 2005-12-26
  • 打赏
  • 举报
回复
同意楼主说法,这样子执行两次sql确实不太好;如果能一次执行完,就是记录数+返回结果就好了;但我也找不到方法解决
yingtju 2005-12-25
  • 打赏
  • 举报
回复
hql最终也是转换成sql执行啊
当然用select sum(*)了
rosifox 2005-12-25
  • 打赏
  • 举报
回复
效率很低吗?谁跟你说的
woolceo 2005-12-25
  • 打赏
  • 举报
回复
我写错了,是count(*)

二楼的,我说的效率低是因为要执行两次sql语句。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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