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 工具提供資料訪問模板。

它還提供了一種基於模板的方法。

結論

在本文中,我們學習了 Spring DAO、Spring ORM 和 Spring JDBC 之間的區別。這些是在 Spring 框架中訪問資料的方法。Spring DAO 和 Spring ORM 都可以與多種技術整合,例如 Hibernate、Java 永續性 API (JPA) 和 Java 資料物件 (JDO)。但是,Spring JDBC 使用純 JDBC。

更新於:2023 年 8 月 17 日

652 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.