请问hibernate如何获取到数据表里面有多少条数据?

要做一个分页功能.
要知道有多少条数据才能计算.
难道真的要session.createQuery("from ItemInfo").list().size()吗?
图片描述

我就只是实现一个这样的分页.要查询它的list??这样会不会效率低?

阅读 3.7k
4 个回答

1.String hql = "select count(*) from table_name"
2.Query query = session.createQuery(hql)
3.int count = Integer.parseInt(query.list().get(0).toString())
查询总条数而不是查询所有数据

数据量大效率肯定会低的, 而且容易出问题, 比如 内存溢出, hibernate api 提供了统计功能, 或者 自己 写 sql(hql) 也可以

hibernate里内置了分页查询功能,无需自写分页sql语句,
建议题主去看看
query.setFirstResult();
query.setMaxResults();方法,效率会比自写sql高而且使用简单。

我这边都是用通过判断pageSize是不是null来执行
query.setFirstResult();
query.setMaxResults();两个分页方法。
如果想获取所有记录的条数,不执行分页方法就行,即pageSize传null就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题