Hibernate查询教程:从基础到高级

需积分: 3 9 下载量 28 浏览量 更新于2024-08-02 收藏 3.75MB PPT 举报
"HebernatePPT - 老师上课讲解的关于Hibernate的教程,针对SSH初学者,主要内容包括Hibernate查询、配置文件编写以及API的使用。" 在本章中,我们将深入探讨Hibernate,这是一个流行的Java对象关系映射(ORM)框架,用于简化数据库操作。首先,我们回顾了如何为两个类——`Order`(订单实体类)和`OrderLine`(订单明细实体类)编写Hibernate配置文件。这两个类之间存在关联,`OrderLine`类中的`order`属性指向`Order`类的一个实例。 预习检查提出了两个问题:Hibernate支持哪两种查询方式,以及HQL是什么。答案是,Hibernate支持SQL和HQL(Hibernate Query Language)两种查询方式。HQL是Hibernate提供的面向对象的查询语言,类似于SQL,但更贴近于Java对象和类的结构。 本章的主要任务是通过Hibernate实现房屋查询DAO,具体包括以下操作: 1. 对`title`进行模糊查询。 2. 对`street`进行精确查询。 3. 使用范围查询来查找租金在特定范围内的房屋。 4. 查询特定联系人在哪些街道发布了信息。 5. 实现分页查询方法,以提高查询效率并优化用户体验。 为了完成这些任务,我们需要掌握Hibernate API中的一些核心接口: - `Configuration`:配置Hibernate,负责加载Hibernate配置信息和映射文件,创建`SessionFactory`。 - `SessionFactory`:初始化Hibernate,为每个数据库连接创建一个会话工厂,是线程安全的,建议全局唯一。 - `Session`:执行数据库操作,每个数据库事务通常对应一个`Session`实例,它是轻量级的。 - `Transaction`:管理事务,处理数据库的原子性操作。 - `Criteria` 和 `Query`:执行数据库查询,提供灵活的查询机制。 代码示例展示了如何实例化`Configuration`和`SessionFactory`: ```java Configuration config = new Configuration(); // 加载配置文件、映射等操作 SessionFactory sf = config.buildSessionFactory(); ``` `SessionFactory`应被声明为静态对象,因为它的创建成本较高,且在整个应用生命周期内只需创建一次: ```java private static SessionFactory sf; ... Session session = sf.openSession(); ``` 通过学习本章,SSH初学者将能熟练地运用Hibernate API进行数据查询,并理解其工作原理,从而在实际项目中更加自如地处理数据库操作。