Criteria查询
Hibernate中的Criteria API提供了另一种查询持久化的方法。它让你能够使用简单的API动态的构建查询,它灵活的特性通常用于搜索条件的数量可变的情况。
Criteria查询之所以灵活是因为它可以借助Java语言,在Java的帮助下它拥有超越HQL的功能。Criteria查询也是Hibernate竭力推荐的一种面向对象的查询方式。
Criteria查询的缺点在于只能检索完整的对象,不支持统计函数,它本身的API也抬高了一定的学习坡度。
Criteria查询示例代码
Session session=HibernateUtil.getSession();
Criteria criteria=session.createCriteria(User.class);
// 条件一:名称以关开头
criteria.add(Restrictions.like("name", "关%"));
// 条件二:email出现在数组中
String[] arr={"1@2.3","2@2.3","3@2.3"};
criteria.add(Restrictions.in("email", arr));
// 条件三:password等于一
criteria.add(Restrictions.eq("password", "1"));
// 排序条件:按登录时间升序
criteria.addOrder(Order.asc("lastLoginTime"));
List<User> users=(List<User>)criteria.list();
System.out.println("返回的User实例数为"+users.size());
for(User user:users){
System.out.println(user);
}
HibernateUtil.closeSession(session);
Criteria查询实际产生的SQL语句
select
this_.ID as ID0_0_,
this_.name as name0_0_,
this_.pswd as pswd0_0_,
this_.email as email0_0_,
this_.lastLoginTime as lastLogi5_0_0_,
this_.lastLoginIp as lastLogi6_0_0_
from
USERTABLE_OKB this_
where
this_.name like '关%'
and this_.email in (
'1@2.3', '2@2.3', '3@2.3'
)
and this_.pswd='1'
order by
this_.lastLoginTime as
c
注:参数是手工加上的。
分享到:
相关推荐
在Hibernate中,可以通过`Session` 对象的 `createCriteria()` 方法来创建一个`Criteria` 实例,即查询器。查询条件是通过`org.hibernate.criterion.Restrictions` 类来定义的,这个类提供了许多静态方法来模拟SQL...
1. **创建Criteria实例**: ```java Criteria criteria = session.createCriteria(User.class); ``` 2. **添加查询条件**: ```java criteria.add(Restrictions.eq("username", "testUser")); ``` 3. **设置...
2. **创建Criteria实例**:通过Session的createCriteria()方法,指定要查询的实体类,创建Criteria实例。 3. **添加模糊查询条件**:使用Criteria的add(Restrictions.like())方法,其中参数分别为属性名和模糊查询...
### Hibernate-Criteria 模糊查询详解 在Java的持久化技术中,Hibernate作为ORM(对象关系映射)框架的一种,提供了强大的数据访问能力。而其中的`Criteria`接口更是为复杂的查询需求提供了一种灵活且功能强大的...
在Java的持久化框架Hibernate中,Criteria API是一种用于构建动态查询的强大工具,它允许开发者以对象化的方式构建SQL语句,而无需直接编写SQL代码。本篇将详细讲解如何在Hibernate中利用Criteria查询来实现类似SQL...
本篇内容将聚焦于Hibernate中的Criteria查询,这是一种动态构建SQL查询的方法,无需直接编写SQL语句,非常适合在程序运行时根据条件构建查询。 在Hibernate中,Criteria API提供了一种类型安全的方式来执行查询,它...
Hibernate 的 Criteria 是一种强大且灵活的查询机制,允许开发者根据需求灵活地组装查询条件。Criteria 的设计是基于 CriteriaSpecification 父接口,提供了 Criteria 和 DetachedCriteria 两个实现。 Criteria 和 ...
本文详细介绍了 Hibernate Criteria API 的使用方法,包括基本概念、创建查询实例、添加查询条件以及示例代码分析。通过 Criteria API 可以轻松地构建复杂的查询条件,并且由于其类型安全的特性,可以有效减少编程...
在查询和搜索功能中,Hibernate3通过HQL(Hibernate查询语言)或 Criteria API来执行SQL查询,简化了数据库操作。在分页功能中,Hibernate3的Criteria API可以配合Pageable接口实现数据的分页检索。 在分页功能上,...
- `Criteria`:表示一个查询实例,可以添加各种查询条件、排序规则和结果限制。 - `DetachedCriteria`:与Session无关的Criteria,用于延迟加载或预编译查询。 - `Expression`:用于构建查询条件,如 ` ...
Hibernate 的 Criteria 是一个完全面向对象、可扩展的条件查询 API,通过它完全不需要考虑数据库底层如何实现、SQL 语句如何实现。Criteria 提供了灵活的查询条件组装方式,能够满足开发中复杂的查询需求。 一、...
1. **Criteria接口**:Criteria查询的核心是`Session.createCriteria()`方法,它返回一个Criteria实例。这个实例就是构建查询的起点,你可以添加各种限制条件、排序规则以及分组条件等。 2. **添加限制条件**:...
以下是一个简单的例子,查询所有`Employee`类的实例: ```java Criteria cr = session.createCriteria(Employee.class); List results = cr.list(); ``` 2. **比较运算符** Criteria API 提供了丰富的比较...
Hibernate 中 Criteria 的使用是 Hibernate 框架中的一种查询机制,对于研究 Hibernate 源码有一些作用。在查询方法设计上可以灵活地根据 Criteria 的特点来方便地进行查询条件的组装。 Criteria 是 Hibernate 中的...
在Java的持久层框架Hibernate中,Criteria API是一个强大的查询工具,它可以用来替代传统的SQL或HQL(Hibernate Query Language)查询,以实现更加面向对象的数据库交互。Criteria API的设计旨在屏蔽不同数据库之间...
例如,创建一个 Criteria 实例 org.hibernate.Criteria 接口表示,可以使用 Criteria 的 add(Criterion criterion) 方法来添加查询条件。Criterion 可以使用 Restrictions 工具类来创建,例如使用 eq、ge、between ...
例如,如果我们要查询名为`TUser`的类,可以这样创建Criteria实例: ```java Criteria ct = session.createCriteria(TUser.class); ``` 接下来,可以通过`add()`方法添加查询条件。例如,我们要查找名字为"Erica...
在Java的持久化框架Hibernate中,Criteria API是一种用于构建动态查询的强大工具,它允许开发者以编程方式构建查询,而不是直接写SQL语句。下面将详细解释Criteria API的使用及其相关概念。 1. Query By Example ...