理解Hibernate:对象/关系映射与查询条件

需积分: 0 1 下载量 198 浏览量 更新于2024-08-18 收藏 4.94MB PPT 举报
"这篇PPT教程主要关注在Hibernate框架中如何添加查询条件,以及对象/关系映射(ORM)的概念和优点。" 在 Hibernate 框架中,当我们需要对数据库进行查询时,通常会使用 Criteria API。一个查询条件是由 `org.hibernate.criterion.Criterion` 接口的实例表示的。为了方便创建这些条件,Hibernate 提供了 `org.hibernate.criterion.Restrictions` 工具类,该类提供了多种工厂方法用于构建 Criterion 对象。例如,在给定的代码段中,我们看到如何通过 Restrictions 添加两个查询条件: 1. 使用 `Restrictions.like()` 方法添加一个模糊匹配的条件,这里查找名字以"李"开头的人: ```java criteria.add(Restrictions.like("name","李%")); ``` 这条语句会匹配所有名字以"李"开头的人员。 2. 使用 `Restrictions.between()` 方法添加一个年龄范围的条件,这里查找年龄在18到24岁之间的人: ```java criteria.add(Restrictions.between("age",18,24)); ``` 这将返回年龄在18至24岁之间的所有人员记录。 接下来,通过调用 `criteria.list()`,我们可以获取满足这两个条件的人员列表。 **对象/关系映射(ORM)** 是解决面向对象编程语言(如Java)与关系数据库之间模型不匹配问题的一种技术。在传统的Java开发中,我们可能需要手动编写大量的JDBC代码来处理对象与数据库表之间的转换。ORM框架如Hibernate简化了这个过程,它允许开发者以面向对象的方式操作数据,而ORM框架则负责底层的数据库交互。 **ORM的优点** 包括: - **提高生产效率**:ORM框架自动处理了对象到数据库的映射,使得开发者可以专注于业务逻辑,而不是数据库操作。 - **可维护性**:ORM使得数据库相关代码更简洁,易于理解和维护。 - **更好性能**:ORM框架可以优化SQL查询,提高执行效率。 - **厂商独立性**:ORM通常与特定的数据库系统无关,可以轻松切换数据库提供商。 然而,ORM也有其缺点,例如: - **SQL/JDBC**:虽然原始的SQL和JDBC可能代码量大且复杂,但它们提供了更多的控制和灵活性。 - **EntityBean**:EJB的CMP在设计上存在问题,依赖性强,不支持多态关联查询。 - **JDO**:虽然简单透明,但它可能不如JDBC或Hibernate成熟。 - **Apache OJB**:性能和稳定性较好,但文档不足且标准支持过多可能导致负担。 - **iBATIS**:提供了更多数据库操作的控制,但可能需要更多的手动工作。 Hibernate作为ORM框架,是Java开发中实现数据持久化的强大工具,通过Criteria API,我们可以方便地构建复杂的查询条件,同时享受ORM带来的诸多优势。