前言

  查询可以按结果集分2类:单个结果 和 数组 ; 其中,返回数组,在这个 数据库数据量随随便便就能上几十万的互联网时代大背景下,常常需要做分页处理, 所以这里就说一下单值和分页, 算是对上一篇"curd"的一些延伸

一.单值查询

    比如,我们需要查询数据库,统计一下app的当前注册人数, 此时我们知道返回结果必定是"单行单列"的一个数值,那么可以用这种单值查询方式;

    使用uniqueResult()方法,它返回一个java.lang.Object对象,并且能保证返回的一定是一个单值对象,否则就会报错;如果返回0个对象,也会报错;所以我们需要放到try-catch块中

        Session session=null;
try{
session= HibernateUtil.openSession();
String hql="select count(*) from Feedback";
long count= (long) session.createQuery(hql).uniqueResult();
System.out.println("get data ok");
}catch(Exception e){
e.printStackTrace();
throw new RuntimeException(e);
}finally {
session.close();
}

二.分页查询

    在这个互联网时代,动辄几十万的数据也是非常平常的事情了,每次查询全部加载是很不现实的。因此,做分页查询,不仅节省db性能,带宽,流畅度上来了还能提升用户体验.

    hibernate的Query类下有两个方法可以帮我们达到分页查询目的:setFirstResult(int num)和setMaxResults(int size);  前者的num是查询的起始记录数,比如从第3条开始查询,就是setFirstResult(3); 后者的size是查询结果集的大小,比如获取10条记录,那就是setMaxResults(10);

            //分页查询
String hql="from Feedback order by id desc";
List<Feedback> feedbacks=session.createQuery(hql).setFirstResult(1).setMaxResults(2).list();

    其中: setFirstResult(int num)的num仍旧是由0开始的;

    于是,配合着pageIndex,pageCount,很容易就可以得到分页请求代码,在上面代码的基础上修改一下就行:

            //分页查询
String hql="from Feedback order by id desc"; int pageIndex=2,pageCount=10; List<Feedback> feedbacks=session.createQuery(hql).setFirstResult((pageIndex-1)*pageCount).setMaxResults(pageCount).list();

  

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利;

本文出自:博客园--别问是谁

最新文章

  1. Splinter学习——不仅仅是自动化测试哦
  2. 设计模式(3)--抽象工厂模式(Absrtact Factory Pattern)
  3. 振奋人心啊!!!!下一代.NET——ASP.NET vNext
  4. 数据库表结构对比同步mysqldiff
  5. SpringMVC学习系列(10) 之 异常处理
  6. JS学习笔记(五) HTML DOM
  7. [Bootstrap] 4. Typogrphy
  8. C#01
  9. java基础知识——程序员面试基础
  10. 在VS工程中,添加c/c++工程中外部头文件及库
  11. 配置cinder使用NFS后端
  12. php 新闻上一条下一条
  13. liunx驱动----异步通知
  14. 第1次作业—— 熟悉 MoocTest环境
  15. 7B - 今年暑假不AC
  16. UnderWater+SDN论文之二
  17. 修改Linux服务器的ttl值
  18. Flask学习笔记(3)--路由
  19. Linux查看端口占用情况并释放端口占用
  20. 漫画|你还记得原生的JDBC怎么连接数据库吗?

热门文章

  1. [PHP]如何使用Mobile_Detect来判断访问网站的设备:安卓,平板,电脑
  2. git remote branch操作
  3. MongoDB的连接字符串
  4. iOS7重磅推新--不断尝试与重新设计的过程
  5. 多媒体封装格式详解---MP4
  6. 使用VisualSVN建立SVN服务器
  7. Google 收购 Android 十周年 全面解读Android现状
  8. An error occured while handling a json request
  9. Mac系统使用命令行快捷打开Sublime
  10. 在需要隐藏navigationController控制器