一、基本查询

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. 搜索会抓取网站域名的whoise信息吗

    http://www.wocaoseo.com/thread-309-1-1.html 网站是否在信产部备案,这是不是会成为影响网站收录和排名的一个因素?百度是否会抓取域名注册人的相关whois信息吗 ...

  2. 力扣Leetcode 461. 汉明距离

    给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换. 完成所有替换操作后,请你返回这个数组. 示例: 输入:arr = [17,18,5,4,6,1] 输 ...

  3. rust 模块组织结构

    rust有自己的规则和约定用来组织模块,比如一个包最多可以有一个库crate,任意多个二进制crate.导入文件夹内的模块的两种约定方式... 知道这些约定,就可以快速了解rust的模块系统. 先把一 ...

  4. JS开发必须知道的41个技巧

    JS是前端的核心,但有些使用技巧你还不一定知道:本文梳理了JS的41个技巧,帮助大家提高JS的使用技巧: Array 1.数组交集 普通数组 const arr1 = [, , , , , ,],ar ...

  5. 利用GetPrivateProfileString读取配置文件(.ini)

    利用GetPrivateProfileString读取配置文件(.ini) 配置文件中经常用到ini文件,在VC中其函数分别为: 写入.ini文件:bool WritePrivateProfileSt ...

  6. Spine学习五- spine动画融合

    在许多地方,都需要用到动画融合,unity的新版动画系统已经能够很方便的进行动画融合,那么使用spine的动画状态机的情况下,如何来进行动画融合呢? 官方有两种方案,一种是使用混合动作实现,另一种是使 ...

  7. 使用Loadrunner进行性能测试

    一.确定性能测试的范围.要求.配置.工具等 明确测试的系统: 本文档主要指的是web应用. 明确测试要求: 用户提出性能测试,例如,网站首页页面响应时间在3S之内,主要的业务操作时间小于10s,支持3 ...

  8. Docker 搭建 Redis Cluster 集群环境

    使用 Docker 搭建 Redis Cluster,最重要的环节就是容器通信的问题,这一块我们在之前的文章中已经给大家解决了<Docker 网络模式详解及容器间网络通信>,本篇文章主要练 ...

  9. Spring security OAuth2.0认证授权学习第一天(基础概念-认证授权会话)

    这段时间没有学习,可能是因为最近工作比较忙,每天回来都晚上11点多了,但是还是要学习的,进过和我的领导确认,在当前公司的技术架构方面,将持续使用Spring security,暂不做Shiro的考虑, ...

  10. 使用java.io.RandomAccessFile更改文本文件的内容

    原文本内容: 2020-01-21 08:31:08.520 [main] INFO logbackCfg.App -秦时明月汉时关 2020-01-21 08:31:08.521 [main] ER ...