最近在使用Hibernate进行分页查询的时候,发现Hibernate分页有一个瓶颈,就是只能访问查询对应的记录,并不能返回符合条件的总条数,网上给的很多策略都是再写一个方法,通过HQL查询总记录数,个人感觉这种方式太复杂了,如果涉及到复杂查询的时候,HQL也不好写,既然Hibernate是个这么流行的ORM框架,我相信它肯定提供了对应的方式,所以尝试了下,发现如下方式更为人性化。

1.通过设置Projections.rowCount()查询总记录数

// 查询总条数
Long totalCount = (Long) detachedCriteria.setProjection(Projections.rowCount()).getExecutableCriteria(this.getHibernateTemplate().getSessionFactory().getCurrentSession()).uniqueResult();

2.取消查询总条数的设置

// 取消查询总条数 进行正常分页查询
detachedCriteria.setProjection(null);

3.正常分页查询

this.getHibernateTemplate().findByCriteria(detachedCriteria, startIndex, pageSize);

如果日志设置打印SQL的话,可以发现查询总条数的发送的SQL就是select count(*) from…,即有效率保障,使用起来还方便

Hibernate DetachedCriteria方式分页查询返回总记录数相关推荐

  1. mysql存储过程查询结果分页并返回总记录数

    – 查询功能树数据 DROP PROCEDURE IF EXISTS FunctionGet_SP; create procedure FunctionGet_SP ( in PageIndex in ...

  2. php输出查询mysql总数_PHP查询语句,如何返回总记录数??

    展开全部 PHP查询语句,e69da5e6ba903231313335323631343130323136353331333337626231有两种方法获得查询的总记录数. 一是使用mysql_num ...

  3. mybatis-plus返回查询总记录数方式(亲测)

    这篇文章主要介绍了mybatis-plus返回查询总记录数方式,具有很好的参考价值,希望对大家有所帮助.如有错误或未考虑完全的地方,望不吝赐教 mybatis-plus返回查询总记录数 mybatis ...

  4. MySQL——查询数据库、数据表总记录数

    方法一  information_schema information_schema数据库是MySQL系统自带的数据库,它提供了数据库元数据的访问方式.information_schema就记录了数据 ...

  5. CRM客户关系管理系统开发第十七讲——实现客户拜访记录管理模块中分页查询客户拜访记录列表的功能

    在CRM客户关系管理系统中,客户的拜访是很重要的一个环节,由业务员面见客户并介绍公司的相关的业务,在业务员回到公司以后,需要对此次的拜访的整个过程记录下来,记录中需要包含拜访的客户的姓名,拜访的时间以 ...

  6. ibatis3获得总记录数,同时计算数据分页?

    2019独角兽企业重金招聘Python工程师标准>>> mybatis 3 在DAO的同一个方法中,如何获得总记录数,然后计算分页再把结果集返回的.Hibernate是的可以实现的, ...

  7. mysql查询数据的总记录数

    mysql查询数据的总记录数 领导让获取数据库中的所有记录总数,网上查了一会,看到了很多都是不能执行,我这小性子安耐不住了,开始暴怒,最后的最后看下来应该缺少了一个关键字,还自以为是的想不知道是不是m ...

  8. 分页总数计算,根据总记录数获取分页总数_ZZGoals

    分页总数计算,根据总记录数获取分页总数,本文章提供5种写法,大家感觉哪个好用就拿去用吧. int pageSize = 20; //每页记录数量 int totalCount = 100005; // ...

  9. 查询大量数据表的总记录数

    1.普通 select count(*) from table; 几千万条数据好几分钟 2.快速查询表的总记录数 select table_name,t.num_rows,t.last_analyze ...

最新文章

  1. python中module_Python中的模块(Module)
  2. tensorflow随笔-二分法求解一元方程
  3. PE文件格式详解(二)
  4. mongodb卸载_如何在Windows上安装MongoDB,启动,卸载
  5. Sitecore开发 IP地理定位服务入门
  6. Jmeter测试——java测试脚本编写
  7. 小程序使用微信收货地址
  8. 复杂知识图谱问答综述方法、挑战和解决办法
  9. 【科普贴】MDIO接口详解
  10. AT070TN92 电源
  11. 将两个字符串连接起来,不要用strcat函数。
  12. Windows Server2012搭建Git服务器
  13. 如何去保证软件的质量
  14. 【渝粤教育】 广东开放大学 21秋期末考试大学英语210262k2
  15. WT品牌语音芯片、功放芯片—让人机交互更简单,让电子世界更美好
  16. 我的Java学习之路2009-11-17
  17. 一本通1646GT 考试
  18. Mall商城后台管理系统——(Vue+SSM)
  19. 理解 Kafka 消费者属性的 enable.auto.commit
  20. java安装完不能ping,解决安装java jdk后导致的ping命令无法使用

热门文章

  1. 数据添加成功自动返回php,laravel框架添加数据,显示数据,返回成功值的方法
  2. 基于GenericAPP无线收发实验
  3. Unity实例开发-AlienShooter(二)
  4. 家电行业月报:消费者健康意识增强,健康类家电获得高关注度(20210106).PDF
  5. 紧跟产业变革趋势 金冠电气驶入发展快车道
  6. 固然法院还没有正式出具逮捕令
  7. Js实现简易的增删改查
  8. ubuntu如何修改文件夹的权限
  9. 多个if语句和else if有什么区别?
  10. C-V2X(四)C-V2X模组