此版本仍在开发中,尚未被视为稳定版本。最新的稳定版本请使用 Spring Framework 6.1.13spring-doc.cn

此版本仍在开发中,尚未被视为稳定版本。最新的稳定版本请使用 Spring Framework 6.1.13spring-doc.cn

Spring Framework 支持与 Java Persistence API (JPA) 和 支持用于资源管理的原生 Hibernate、数据访问对象 (DAO) 实现、 和交易策略。例如,对于 Hibernate,有一流的支持 几个方便的 IoC 功能,解决了许多典型的 Hibernate 集成问题。 您可以为 OR(对象关系)映射配置所有支持的功能 工具。他们可以参与 Spring 的资源和 事务管理,并且它们符合 Spring 的通用事务和 DAO 异常层次结构。推荐的集成样式是针对普通 DAO 编写代码 Hibernate 或 JPA API。spring-doc.cn

Spring 在创建时为您选择的 ORM 层添加了重要的增强功能 数据访问应用程序。您可以利用尽可能多的集成支持 wish 的 Wish 进行 API 的 API 集成,您应该将这种集成工作与构建的成本和风险进行比较 类似的内部基础设施。您可以像使用 库,无论技术如何,因为一切都被设计为一组可重用的 JavaBeans 的 Java Beans 中。Spring IoC 容器中的 ORM 有助于配置和部署。因此 本节中的大多数示例都显示了 Spring 容器内的配置。spring-doc.cn

使用 Spring Framework 创建 ORM DAO 的好处包括:spring-doc.cn

  • 更轻松的测试。Spring 的 IoC 方法使交换实现变得容易 以及 Hibernate 实例、JDBC 实例、事务管理器和映射对象实现(如果需要)的配置位置。这 反过来,可以更轻松地在 隔离。SessionFactoryDataSourcespring-doc.cn

  • 常见的数据访问异常。Spring 可以从您的 ORM 工具包装异常, 将它们从专有 (可能选中) 异常转换为通用运行时层次结构。此功能允许您处理大多数持久性 异常,这些异常是不可恢复的,仅在适当的层中,没有 烦人的样板捕获、抛出和异常声明。您仍然可以诱捕 并根据需要处理异常。请记住,JDBC 异常(包括 特定于 DB 的方言)也会转换为相同的层次结构,这意味着您可以 在一致的编程模型中使用 JDBC 执行一些操作。DataAccessExceptionspring-doc.cn

  • 一般资源管理。Spring 应用程序上下文可以处理位置 以及 Hibernate 实例、JPA 实例、JDBC 实例和其他相关资源的配置。这使得这些 值易于管理和更改。Spring 提供高效、轻松和安全的处理 持久性资源。例如,使用 Hibernate 的相关代码通常需要 使用相同的 Hibernate 来确保效率和适当的事务处理。 Spring 使 创建一个 并透明地绑定到当前线程变得容易, 通过 Hibernate 公开电流。因此,Spring 解决了许多典型 Hibernate 使用的长期问题,适用于任何本地或 JTA 事务环境。SessionFactoryEntityManagerFactoryDataSourceSessionSessionSessionSessionFactoryspring-doc.cn

  • 集成交易管理。你可以用声明式的 面向方面编程 (AOP) 风格的方法拦截器,或者通过在 XML 配置文件。在这两种情况下,事务语义和异常处理 (回滚等)将为您处理。如 资源和事务管理 中所述, 您还可以交换各种事务 Management 器,而不会影响与 ORM 相关的代码。 例如,您可以在 local transactions 和 JTA 之间进行交换,具有相同的完整服务 (例如声明式事务)在这两种情况下都可用。此外 与 JDBC 相关的代码可以在事务上与您用于执行 ORM 的代码完全集成。 这对于不适合 ORM 的数据访问(例如批处理和 BLOB 流),但这仍然需要与 ORM 操作共享公共事务。@Transactionalspring-doc.cn

提供更全面的 ORM 支持,包括对替代数据库的支持 技术,您可能希望查看 Spring Data 项目套件。如果你是 JPA 用户,则 Getting Started Access spring.io 的 Data with JPA 指南提供了很好的介绍。
提供更全面的 ORM 支持,包括对替代数据库的支持 技术,您可能希望查看 Spring Data 项目套件。如果你是 JPA 用户,则 Getting Started Access spring.io 的 Data with JPA 指南提供了很好的介绍。