一、基本查询

1 Session session = HibernateUtils.getSession();
2 //创建QBC查询接口的实现类
3 Criteria criteria = session.createCriteria(Person.class);
4 //查询对象列表
5 List<Person> personList = criteria.list();

  单个属性的查询

1 //创建查询接口的实现类
2 Criteria criteria = session.createCriteria(Person.class);
3 //获得具体查询的属性
4 PropertyProjection pp = Projections.property("pname");
5 //设置具体查询的列
6 criteria.setProjection(pp);
7 List<String> nameList = criteria.list();

  多个属性的查询

 1 //创建查询接口的实现类
2 Criteria criteria = session.createCriteria(Person.class);
3 //获得具体查询的属性
4 PropertyProjection pp = Projections.property("pname");
5 PropertyProjection pp1 = Projections.property("pgender");
6 //创建要查询列的集合
7 ProjectionList pList = Projections.projectionList();
8 pList.add(pp);
9 pList.add(pp1);
10 //设置具体查询的列
11 criteria.setProjection(pList);
12 List<Object[]> objArrList = criteria.list();

二、统计查询

  

 1 //创建查询接口的实现类
2 Criteria criteria = session.createCriteria(Person.class);
3 //设置要查询统计的属性
4 AggregateProjection ap = Projections.max("salary");
5 criteria.setProjection(ap);
6 Object result = criteria.uniqueResult();
7 System.out.println(result);
8 //查询总数
9 criteria.setProjection(Projections.rowCount());
10 Object result2 = criteria.uniqueResult();
11 System.out.println(result2);
12 //查询平均值
13 criteria.setProjection(Projections.avg("salary"));
14 Object result3 = criteria.uniqueResult();
15 System.out.println(result3);

三、分组统计查询

 1 //创建查询接口的实现类
2 Criteria criteria = session.createCriteria(Person.class);
3 //创建查询项的集合
4 ProjectionList pl = Projections.projectionList();
5 //设置要查询的属性
6 PropertyProjection pp1 = Projections.property("pgender");
7 AggregateProjection ap = Projections.max("salary");
8 PropertyProjection pp = Projections.groupProperty("pgender");
9 pl.add(pp1);
10 pl.add(ap);
11 pl.add(pp);
12 criteria.setProjection(pl);
13 List<Object[]> objArrList = criteria.list();

四、排序

1 Criteria criteria = session.createCriteria(Person.class);
2 criteria.addOrder(Order.desc("salary"));
3 List<Person> pList = criteria.list();

五、分页查询

1 Criteria criteria = session.createCriteria(Person.class);
2 //设置分页条件
3 criteria.setFirstResult(0);
4 criteria.setMaxResults(3);
5 List<Person> list = criteria.list();

六、限定查询

1 //创建查询接口的实现类
2 Criteria criteria = session.createCriteria(Person.class);
3 //创建查询条件
4 Criterion c = Restrictions.eq("id", 4);
5 criteria.add(c);
6 List<Person> list = criteria.list();
1 //创建查询接口的实现类
2 Criteria criteria = session.createCriteria(Person.class);
3 //创建查询条件,默认AND链接
4 Criterion c = Restrictions.ge("salary", 300);
5 Criterion c1 = Restrictions.le("salary", 500);
6 criteria.add(c);
7 criteria.add(c1);
8 List<Person> list = criteria.list();
1 //创建查询接口的实现类
2 Criteria criteria = session.createCriteria(Person.class);
3 //创建查询条件
4 Criterion c = Restrictions.and(Restrictions.ge("salary", 400),Restrictions.eq("pgender", 0));
5 criteria.add(c);
6 List<Person> list = criteria.list();

七、模糊查询

1 //创建查询接口的实现类
2 Criteria criteria = session.createCriteria(Person.class);
3 //创建查询条件
4 Criterion c = Restrictions.like("pname", "张%");
5 criteria.add(c);
6 List<Person> list = criteria.list();

Hibernate4.3 QBC查询的更多相关文章

  1. Hibernate5.2之QBC查询

                                                         Hibernate5.2值QBC查询 一.简介  Hibenate的QBC查询个人认为是Hib ...

  2. [原创]java WEB学习笔记92:Hibernate学习之路-- -QBC 检索和本地 SQL 检索:基本的QBC 查询,带 AND 和 OR 的QBC,统计查询,排序,分页

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  3. Hibernate之QBC查询与本地SQL查询

    1. QBC查询:     QBC 查询就是通过使用Hibernate提供的QueryByCriteria API 来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口 ...

  4. hibernate_05_hibernateHQL查询QBC查询和SQL查询

    1.HQL简介:HQL是Hibernate Query Language(Hibernate 查询语言)的缩写,提供更加丰富灵活.更为强大的查询能力:HQL更接近SQL语句查询语法.Hibernate ...

  5. Hibernate中createCriteria即QBC查询的详细用法 .Hibernate中createCriteria即QBC查询的详细用法 .

    现在假设有一个Student类,内有id,name,age属性String hql = "from Student s";按照以前的做法,我们通常是Query query = se ...

  6. QBC查询、离线条件查询(DetachedCriteric)和分页查询模版

    一.QBC检索步骤 QBC检索步骤: 1.调用Session的createCriteria()方法创建一个Criteria对象. 2.设定查询条件.Expression类提供了一系列用于设定查询条件的 ...

  7. Hibernate中createCriteria即QBC查询的详细用法

    现在假设有一个Student类,内有id,name,age属性String hql = "from Student s";按照以前的做法,我们通常是Query query = se ...

  8. Hibernate学习第4天--HQL——QBC查询详解,抓取策略优化。

    上次课回顾: l  Hibernate的一对多 n  表与表之间关系 u  一对多关系 u  多对多关系 u  一对一关系 n  Hibernate的一对多配置 u  搭建Hibernate基本环境 ...

  9. SSH的简单入门体验(Struts2.1+Spring3.1+Hibernate4.1)- 查询系统(上)

    所谓SSH,指的是struts+spring+hibernate的一个集成框架,它是目前较流行的一种Web应用程序的开源框架. 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域 ...

随机推荐

  1. 给你的Swagger文档换套附魔皮肤吧

    前言 相信无论是前端或是后端的程序员对Swagger都不怎么陌生,没有用过应该也听说过 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务. 简 ...

  2. Macbook Pro HDMI 无信号解决办法

    因为CS:GO无法启动的问题,使用过了下面的命令 sudo pmset -a GPUSwitch 0 导致HDMI显示器无信号 输入下面的代码 sudo pmset -a GPUSwitch 1 可以 ...

  3. 深入了解Kafka【四】消费者的Offset管理

    1.Offset Topic Consumer通过提交Offset来记录当前消费的最后位置,以便于消费者发生崩溃或者有新的消费者加入消费者组,而引发的分区再均衡操作,每个消费者可能会分到不同的分区.我 ...

  4. [BUUOJ记录] [GXYCTF2019]BabyUpload

    CTF三大骗局:Baby Easy Funny,本题主要考察.htaccess文件解析文件.文件类型检测绕过 打开题目给了一个上传点,上传一个php文件看看过滤规则 “后缀名不能有ph”直接禁掉了所有 ...

  5. js map数据结构

    Map 对象保存键值对,并且能够记住键的原始插入顺序.任何值(对象或者原始值) 都可以作为一个键或一个值.  map对象常用于保存键值对,它的键是任意数据类型,常用于建立数据的映射关系 和对象的区别: ...

  6. Agumaster 增加雪球网爬虫

  7. leetcode刷题-58最后一个单词

    题目 给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度.如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词. 如果不存在最后一个单词,请返回 0 . 说明:一 ...

  8. pwnable.kr之fd

    题目如图: 在终端输入:ssh fd@pwnable.kr -p2222 连接到远程终端,如图: 输入ls -l,查看文件: 输入whoami,查看自身用户名称: 根据题目意思我们只要打开flag文件 ...

  9. Linux远程ssh执行命令expect使用及几种方法

    expect命令实现脚本免交互 一.Linux下SSH无密码认证远程执行命令 在客户端使用ssh-keygen生成密钥对,然后把公钥复制到服务端(authorized_keys). 实现步骤: 1.客 ...

  10. Appium自动化Android环境搭建

      前言: 本系列教程用于个人经验记录,用于他人借鉴,提供一定参考价值.经常会有一种感觉,工具或技术在某一阶段使用比较熟练,过一段时间就可能会遗忘,俗话说好记性不如烂笔头,以此记录. appium简介 ...