1: QBE (Query By Example)
Criteria cri = session.createCriteria(Student.class);
cri.add(Example.create(s)); //s是一个Student对象
list cri.list();
实质:创建一个模版,比如我有一个表serial有一个 giftortoy字段,我设置serial.setgifttoy("2"),
则这个表中的所有的giftortoy为2的数据都会出来
2: QBC (Query By Criteria) 主要有Criteria,Criterion,Oder,Restrictions类组成
session = this.getSession();
Criteria cri = session.createCriteria(JdItemSerialnumber.class);
Criterion cron = Restrictions.like("customer",name);
cri.add(cron);
list = cri.list();
==============================
比较运算符
HQL运算符 QBC运算符 含义
= Restrictions.eq() 等于
<> Restrictions.not(Exprission.eq()) 不等于
> Restrictions.gt() 大于
>= Restrictions.ge() 大于等于
< Restrictions.lt() 小于
<= Restrictions.le() 小于等于
is null Restrictions.isnull() 等于空值
is not null Restrictions.isNotNull() 非空值
like Restrictions.like() 字符串模式匹配
and Restrictions.and() 逻辑与
and Restrictions.conjunction() 逻辑与
or Restrictions.or() 逻辑或
or Restrictions.disjunction() 逻辑或
not Restrictions.not() 逻辑非
in(列表) Restrictions.in() 等于列表中的某一个值
not in(列表) Restrictions.not(Restrictions.in())不等于列表中任意一个值
between x and y Restrictions.between() 闭区间xy中的任意值
not between x and y Restrictions.not(Restrictions..between()) 小于值X或者大于值y
3: HQL
String hql = "select s.name ,avg(s.age) from Student s group by s.name";
Query query = session.createQuery(hql);
list = query.list();
....
4: 本地SQL查询
SQLQuery sq = session.createSQLQuery("select {teacher.*},{course.*} from classes")
sq.addEntity("teacher",Teacher.class)
sq.addEntity("course",Course.class)
sq.list();
5: QID
Session的get()和load()方法提供了根据对象ID来检索对象的方式。该方式被用于事先知道了要检索对象ID的情况。
分享到:
相关推荐
标题中的“Hibernate-HQL-QBC-QBE”涵盖了四个重要的Java持久化框架Hibernate中的概念,分别是Hibernate Query Language(HQL)、Query By Criteria(QBC)、Query By Example(QBE)以及相关的库文件。以下是对这些...
3. **限制**:QBE通常适用于简单的查询,对于复杂的查询,如子查询、联接查询等,可能需要使用HQL或QBC。 在实际开发中,QBC更适合于复杂的、需要动态构建的查询,而QBE则更适合于快速实现简单的查询需求。两者都是...
标题"Hibernate_QBC和Hibernate_QBE"提及了两个关于Hibernate的查询方式,即Query By Criteria(QBC)和Query By Example(QBE)。Hibernate是Java领域中一个广泛使用的对象关系映射(ORM)框架,它允许开发者以面向...
QBC中的运算符与HQL中的对应,例如,通过调用对象的`eq()`、`gt()`等方法来设置查询条件。 在实际应用中,HQL通常用于构造复杂的、面向对象的查询,而QBC则更适合于简单的查询或者基于对象实例的查询。开发者可以...
Hibernate(HQL、QBC查询)源码 Hibernate(HQL、QBC查询)源码 Hibernate(HQL、QBC查询)源码 Hibernate(HQL、QBC查询)源码 Hibernate(HQL、QBC查询)源码
HQL的强大之处在于它可以处理复杂的查询,比如分组、排序、连接等,例如: ```java query = session.createQuery("from User u join u.roles r where r.name = 'Admin'"); users = query.list(); ``` 这个查询将...
SSH笔记-HQL查询(基于位置参数查询、基于命名参数查询、分页查询、命名查询、投影查询报表查询、内/迫切内/左外/迫切左外连接查询)、QBC(QBC检索查询、统计查询、排序查询、HQL操作数据库)、本地SQL查询
在实际开发中,QBC与Hibernate的其他查询方式,如HQL(Hibernate Query Language)和Criteria API,可以灵活搭配使用,根据项目需求选择最适合的查询手段。QBC的优势在于它的直观性和灵活性,但可能在性能上略逊于...
开发者可以直接在HQL语句中指定类名、属性名,进行复杂的查询操作,包括但不限于分页、排序、联接等。HQL的优势在于其强大的功能,能够处理复杂的查询逻辑,且易于理解和维护。但是,对于简单的查询,HQL的语法可能...
### QBC表达式:比较运算符详解 在IT领域中,特别是数据库操作方面,QBC(Query by Criteria)是一种常用的技术手段,它提供了一种灵活的方式来构建查询条件。本文将重点介绍QBC方法中的比较运算符及其具体用法,...
本文详细解析了QBC查询中的几个关键概念及其应用场景,包括HBM映射文件与HQL的关系、Projection的作用、Criterion和Order条件的使用等。此外,还提供了一个简单的JavaScript页面刷新示例。通过这些内容的学习,可以...
虽然HQL是官方推荐的,但在某些情况下,QBC可能更适合程序员的编码风格或需求。 最后,Hibernate也允许直接使用SQL查询,这对于处理复杂查询或者利用数据库特有的功能非常有用。不过,过度依赖SQL可能会削弱...
- Hql语句的结构与SQL类似,如`FROM`、`WHERE`、`ORDER BY`等关键字,但Hql主要针对对象和对象属性,而不是数据库表和列。 - Hql的关键字不区分大小写,但类名和属性名需区分大小写。 - `SELECT`子句在Hql中可选...
QBC的相关讲义和例题 QBC(Query By Criteria)查询方式是Hibernate提供的“更加面向对象”的一种检索方式。QBC在条件查询上比HQL查询更为灵活,而且支持运行时动态生成查询语句。
3. **Criteria查询的构建**:包括选择实体(Select),指定查询的根实体(Root Criteria),添加限制条件(Restrictions),排序(Order),分组(Group By)以及聚合函数(Projections)等。 4. **Join操作**:在...
Criteria查询的构建过程非常灵活,可以与Session接口结合使用,执行HQL语句。 ### QBC查询的基本步骤 1. **创建Criteria对象**:首先,我们需要通过Session接口的createCriteria()方法创建Criteria对象,这个对象...
QBC是一种基于API的查询构建方法,它通过一系列的API调用来构造查询条件,相比于HQL,QBC更加强调类型安全和延迟绑定,使得查询条件的构建更为灵活和强大。在QBC中,主要涉及四个核心概念:`Criteria`、`Criterion`...
QBC是Hibernate提供的一种基于对象的查询方式,与HQL(Hibernate Query Language)类似,但更接近Java的API,允许我们根据对象的属性来构建查询条件。在进行分页查询时,QBC提供了`setFirstResult()`和`...
之前也发了一个,这个包含之前的,还添加了hibernate对数据库操作的代码(注意:controller层两个QBC/SQLTest代码不能运行,只是写出了操作数据库的除了HQL的另外2种方式)。我发现现在还是有很多公司用hibernate+...