Hibernate查询教程:HQL与Criteria查询

需积分: 3 1 下载量 30 浏览量 更新于2024-08-18 收藏 2.03MB PPT 举报
"属性查询-Hibernate教程_从入门到精通_第四篇(共四篇)" 在本篇Hibernate教程中,我们将探讨如何进行属性查询,以及更深入地了解Hibernate的查询机制。属性查询允许我们从数据库中检索特定对象的特定属性,而不是获取整个对象的所有信息。这有助于优化性能,特别是当我们只需要部分数据时。 例如,如果我们有一个名为`TblFwxx`的类,它有多个属性,如`title`和`date`,我们可以通过以下HQL(Hibernate Query Language)语句来查询这些特定属性: ```sql select fw.title, fw.date from TblFwxx fw ``` 这将返回一个包含`title`和`date`的Object数组列表。每个元素都是一个Object数组,其中包含了对应记录的`title`和`date`值。查询结果仍然存储在一个List中,便于进一步处理。 接下来,我们将深入学习Hibernate的查询方式,包括HQL和Criteria查询。 ### Hibernate查询概述 Hibernate提供了两种主要的查询方式:HQL和Criteria查询。 #### HQL(Hibernate Query Language) HQL是Hibernate的查询语言,它类似于SQL,但操作的对象是Java实体类,而非数据库表。HQL的优势在于它与数据库方言解耦,使得代码更易于移植。例如,获取所有`TblFwxx`对象的HQL语句是: ```sql from TblFwxx ``` HQL支持以下功能: - **无需显式指定SELECT子句**:默认情况下,HQL会返回所有指定类的实例。 - **类名和别名**:使用类名(如`TblFwxx`)而非表名,可以使用别名来简化查询,如`from TblFwxx as fw`。 - **属性查询**:可以选择性地只查询特定属性,如上面的例子所示。 - **关联查询**:可以处理对象间的关联,包括一对一、一对多、多对多等关系。 - **函数和运算符**:支持各种数学运算、比较运算以及日期和字符串函数。 #### Criteria查询 Criteria查询是一种面向对象的查询方式,它通过构建一系列查询条件来生成查询。这种方式更加灵活,可以动态构建查询。Criteria查询提供了API来设置查询条件,如限制、排序和分组。 ### 本章任务与目标 在本章中,你将学习如何使用Hibernate实现以下功能: 1. 房屋查询DAO 2. 根据`title`进行模糊查询 3. 精确查询街道 4. 使用范围查询过滤租金 5. 查找特定联系人在哪些街道发布过信息 6. 实现分页查询 通过这些任务,你将掌握HQL和Criteria查询的使用,理解它们在实际开发中的应用,并提升你的Hibernate技能。 属性查询是Hibernate中提高效率的一个重要特性,而HQL和Criteria查询则为开发者提供了丰富的查询工具,以适应不同的需求。通过学习和实践,你将能够更好地利用Hibernate进行数据查询和管理。