条件查询
* 可以采用拼字符串的方式传递参数
* 可以采用 ?来传递参数(索引从0开始)
* 可以采用 :参数名 来传递参数
* 如果传递多个参数,可以采用setParamterList方法
* 在hql中可以使用数据库的函数,如:date_format
第一种:可以拼字符串
List students = session.createQuery("select s.id, s.name from Student s where s.name like '%1%'").list();
第二种:可以使用?方式传递参数
//参数的索引从0开始
//传递的参数值,不用单引号引起来
//注意方法链编程
List students = session.createQuery("select s.id, s.name from Student s where s.name like ?")
.setParameter(0, "%1%")
.list();
第三种:参数名称 的方式传递参数值
List students = session.createQuery("select s.id, s.name from Student s where s.name like :myname")
.setParameter("myname", "%1%")
.list();
第四种:参数名称 的方式传递参数值
List students = session.createQuery("select s.id, s.name from Student s where s.name like :myname and s.id=:myid")
.setParameter("myname", "%1%")
.setParameter("myid", 12)
.list();
第五种:支持in,需要使用setParameterList进行参数传递
List students = session.createQuery("select s.id, s.name from Student s where s.id in(:myids)")
.setParameterList("myids", new Object[]{1, 2, 3, 4, 5})
.list();
第六种:在hql中可以使用数据库的函数,如:date_format
//查询2010年2月创建的学生
List students = session.createQuery("select s.id, s.name from Student s where date_format(s.createTime, '%Y-%m')=?")
.setParameter(0, "2010-02")
.list();
第七种:between
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//查询2010-01-10到2010-02-15创建的学生
List students = session.createQuery("select s.id, s.name from Student s where s.createTime between ? and ?")
.setParameter(0, sdf.parse("2010-01-10 00:00:00"))
.setParameter(1, sdf.parse("2010-02-15 23:59:59"))
.list();
分享到:
相关推荐
QBC是一种基于API的查询构建方法,它通过一系列的API调用来构造查询条件,相比于HQL,QBC更加强调类型安全和延迟绑定,使得查询条件的构建更为灵活和强大。在QBC中,主要涉及四个核心概念:`Criteria`、`Criterion`...
在第一个示例中,我们看到一个名为 `findPerson` 的方法,该方法执行了一个 HQL 查询来查找满足特定条件的人。这里的 HQL 语句为: ```java "from syidt.modules.grp.basegrp.persistence.Person as person where ...
4. **灵活性**:HQL支持多种查询方式,包括简单查询、复杂查询、联接查询等。 ### HQL的基本使用 #### 1. 简单查询示例 ```java Session session = HibernateUtil.getSession(); String hql = "FROM Admin AS ...
通过本文的介绍,我们不仅回顾了数据库表连接的基础知识,还深入了解了Hibernate HQL关联查询的实现原理及应用方法。对于开发者而言,掌握HQL关联查询不仅可以提高查询效率,还能让代码更加简洁易懂。希望本文能帮助...
本文将介绍几种常见的HQL查询方式及其应用场景。 #### 1. 基本的查询语句 **示例:** ```hql from DesignActivity ``` **解析:** 这个简单的HQL语句用于查询`DesignActivity`表中的所有记录。这里的`Design...
在Hibernate中,HQL(Hibernate Query Language)是其内置的一种面向对象的查询语言,它是SQL的面向对象版本,用于检索和操作持久化对象。HQL查询的使用极大地提高了开发效率,因为它将数据操作与具体的数据库结构...
**HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及关联关系的查询。 ##### 默认数据库表和数据 在本文档...
NHibernate查询语言(HQL)是一种专门为NHibernate对象/关系映射框架设计的面向对象的查询语言。它允许开发者使用面向对象的术语来编写数据库查询,而不是传统的SQL语法。HQL紧密集成面向对象的概念,如继承、多态和...
本文将深入探讨 HQL 的几个关键方面,包括基本的查询语法、连接操作以及聚合函数等。 #### 基本查询语法 HQL 查询的基本语法与 SQL 非常相似,但又有所不同。以下是一些基本的 HQL 查询示例: 1. **简单查询**: ...
HQL的完整语法结构包括以下几个关键部分:`select`, `update`, `delete`, `from`, `where`, `group by`, `having`, `order by`。值得注意的是,`update` 和 `delete` 操作是在Hibernate 3版本中引入的新特性,这使得...
以下是一个简单的 HQL 查询示例,用于演示如何使用 HQL 来查询数据: ```java public class HqlQuery { public static void main(String[] args) throws Exception { HqlQuery manager = new HqlQuery(); // ...
接下来,我们将详细讨论QBC的几种常见查询: 1. **基本查询**:通过Criteria接口的add(Restriction restriction)方法添加查询条件,如eq("property", value)表示等于,ne("property", value)表示不等于,gt(...
本文将详细介绍 Hibernate 提供的几种查询方式及其应用场景。 #### 二、重要知识点 ##### 1. Session 对象与查询操作 在 Hibernate 中,所有持久化操作都需要通过 Session 对象来完成,包括查询操作。Session ...
本文详细解析了QBC查询中的几个关键概念及其应用场景,包括HBM映射文件与HQL的关系、Projection的作用、Criterion和Order条件的使用等。此外,还提供了一个简单的JavaScript页面刷新示例。通过这些内容的学习,可以...
- **设置查询条件**:通过`add`方法添加查询条件。 - **获取查询结果**:通过`list`方法获取查询结果集。 ### 五、总结 通过对以上内容的学习,可以了解到Hibernate不仅提供了一种强大的ORM解决方案,还为开发者...
以下是对几种查询方法的详细解释: 1. `get()` 和 `load()`:两者都用于根据ID获取对象,但有关键区别。`get()` 直接从数据库中获取数据,如果不存在则返回`null`;而`load()` 则返回一个代理对象,只有当调用其...
条件查询是NHibernate提供的另一种查询方式,允许开发者通过更直观的方式来构建查询条件。 1. **条件查询(CriteriaQuery)**:介绍了Criteria API的基本概念和使用方法。 2. **根据示例查询(QueryByExample)**:提供...
5. **HQL/JPQL**:这两种是面向对象的查询语言,类似于SQL,但更贴近Java。HQL用于Hibernate,JPQL是JPA规范的一部分。它们可以方便地处理复杂的关联查询和聚合函数。 6. **Java反射**:在模仿Hibernate生成SQL时,...
在Hibernate框架中,`Criteria`提供了一种非常灵活且强大的查询机制,允许开发者构建复杂的查询条件,而无需编写HQL或SQL语句。本文将详细介绍`Criteria`的基本概念、使用方法以及其提供的各种功能特性。 #### ...
以上介绍了Hibernate中几种常见的查询方式,包括HQL、QBC、原生SQL以及一些高级查询技巧如分组、排序等。掌握这些基本操作可以帮助开发者更高效地使用Hibernate框架进行数据访问操作。随着实践经验的积累,还可以...