Spring DAO、Spring ORM 和 Spring JDBC 之间的区别


上面提到的三个术语 Spring DAO、Spring ORM 和 Spring JDBC,都与 Spring 框架中的数据访问相关。该框架由 Rod Johnson 于 2003 年 6 月开发,并且随着其发布,由于其构建企业应用程序的全面工具和功能集,它在 Java 开发人员中变得非常流行。尽管这些术语服务于相同目的,但它们之间存在一些区别。在本文中,我们将讨论 Spring DAO、Spring ORM 和 Spring JDBC 之间的区别。

Spring DAO 与 Spring ORM 与 Spring JDBC

在本节中,我们将介绍 Spring DAO、Spring ORM 和 Spring JDBC,稍后我们将创建一个表格来描述这三种技术之间的区别。

Spring JDBC

它是一个模块,提供使用 JDBC API 与 Spring 交互的功能。JDBC 的全称是 Java 数据库连接。它是一个应用程序编程接口 (API),允许 Java 应用程序使用 SQL 语句与关系数据库进行交互。我们可以将 Spring JDBC 与其他 Spring 模块集成,例如事务管理、数据访问对象 (DAO) 和对象关系映射 (ORM)。

Spring JDBC 提供了一种基于模板的方法,减少了使用 JDBC API 所需的样板代码量,例如打开和关闭连接、语句和结果集、处理异常等。术语样板代码指的是具有固定模式的一堆代码块。有多种方法可以形成 JDBC 数据库访问,包括 JdbcTemplate、SimpleJdbcInsert、SimpleJdbcCall 和 RDBMS 对象方法。

Spring DAO

它是一个约定,代表 Spring 数据访问对象,并指导我们如何编写 DAO。与 Spring JDBC 一样,它不提供任何用于数据访问的模板或接口。它允许轻松地使用数据访问技术,例如 JDBC、Hibernate 和 JDO。我们必须使用 @Repository 注释 DAO,以将与 JDBC、Hibernate 和 JDO 相关的异常转换为 DataAccessException 子类。

为了使用这些底层技术,Spring 提供了以下抽象 DAO 类,我们可以在程序中扩展它们:

  • JdbcDaoSupport

  • HibernateDaoSupport

  • JdoDaoSupport

  • JpaDaoSupport

Spring ORM

为了进行资源管理和 DAO 实现,我们还可以将 Spring 框架与各种 ORM 工具集成,例如 Hibernate、TopLink、Java 持久性 API (JPA)、Java 数据对象 (JDO) 和 iBATIS SQL Maps。这里,ORM 代表对象关系映射。

以下是 Spring ORM 提供的功能列表:

  • Spring IoC 是一种实现对象依赖项之间松耦合的机制。它可以应用于 Hibernate 和 JDBC 的实例,以交换它们的实现和配置位置,这有助于更轻松地测试应用程序。

  • Spring 可以将来自其他 ORM 工具的异常转换为常见的运行时异常,即 DataAccessException。

  • 它提供高效、简单且安全的资源处理。

  • 它还提供集成的交易管理系统。

Spring DAO、Spring ORM 和 Spring JDBC 之间的区别

下表总结了从上述讨论中得出的 Spring DAO、Spring ORM 和 Spring JDBC 之间的区别:

Spring DAO

Spring ORM

Spring JDBC

它允许我们使用数据访问技术。

它允许在 Spring 中集成 ORM 工具。

它建立在 JDBC 之上。

它的实现和维护稍微复杂一些。

它的实现和维护也很复杂。

与其他技术相比,它的实现和维护相对简单。

Spring DAO 没有提供任何用于数据访问的模板。

它通过 ORM 工具提供数据访问模板。

它还提供了一种基于模板的方法。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

结论

在本文中,我们学习了 Spring DAO、Spring ORM 和 Spring JDBC 之间的区别。这些是在 Spring 框架中访问数据的方法。Spring DAO 和 Spring ORM 都可以与多种技术集成,例如 Hibernate、Java 持久性 API (JPA) 和 Java 数据对象 (JDO)。但是,Spring JDBC 使用纯 JDBC。

更新于:2023 年 8 月 17 日

652 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始
广告