- Spring+Spring MVC+MyBatis從零開始學
- 吳為勝 楊章偉
- 902字
- 2019-11-22 18:31:43
4.1 Spring JDBC
Spring的JDBC模塊負責數據庫資源管理和錯誤處理,大大簡化了開發人員對數據庫的操作,使得開發人員可以從煩瑣的數據庫操作中解脫出來,從而將更多的精力投入編寫業務邏輯中。
4.1.1 Spring JdbcTemplate的解析
針對數據庫的操作,Spring框架提供了JdbcTemplate類,該類是Spring框架數據抽象層的基礎,其他更高層次的抽象類是構建于JdbcTemplate類之上的。可以說,JdbcTemplate類是Spring JDBC的核心類。
JdbcTemplate類的繼承關系十分簡單。它繼承自抽象類JdbcAccessor,同時實現了JdbcOperations接口。
(1)JdbcOperations接口定義了在JdbcTemplate類中可以使用的操作集合,包括添加、修改、查詢和刪除等操作。
(2)JdbcTemplate類的直接父類是JdbcAccessor,該類為子類提供了一些訪問數據庫時使用的公共屬性,具體如下。
- DataSource:其主要功能是獲取數據庫連接,具體實現時還可以引入對數據庫連接的緩沖池和分布事務的支持,它可以作為訪問數據庫資源的標準接口。
- SQLExceptionTranslator:org.springframework.jdbc.support.SQLExceptionTranslator接口負責對SQLException進行轉譯工作。通過必要的設置或者獲取SQLExceptionTranslator中的方法可以使JdbcTemplate在需要處理SQLException時委托SQLExceptionTranslator的實現類來完成相關的轉譯工作。
4.1.2 Spring JDBC的配置
Spring JDBC模塊主要由4個包組成,分別是core(核心包)、dataSource(數據包)、object(對象包)和support(支持包)。關于這4個包的具體說明如表4.1所示。
表4.1 Spring JDBC中的主要包及說明

從表4.1可以看出,Spring對數據庫的操作都封裝在了這幾個包中,如果想要使用Spring JDBC,就需要對其進行配置。在Spring中,JDBC的配置是在配置文件applicationContext.xml中完成的,其配置模板如下所示。

在上述代碼中定義了3個Bean,分別是dataSource、jdbcTemplate和需要注入類的Bean。其中dataSource對應的org.springframework.jdbc.datasource.DriverManagerDataSource類用于對數據源進行配置,jdbcTemplate對應的org.springframework.jdbc.core.JdbcTemplate類中定義了JdbcTemplate的相關配置。上述代碼中dataSource的配置就是JDBC連接數據庫時所需的4個屬性,如表4.2所示。
表4.2 dataSource的4個屬性

表4.2中的4個屬性需要根據數據庫類型或者機器配置的不同設置相應的屬性值。例如,如果數據庫類型不同,就需要更改驅動名稱;如果數據庫不在本地,就需要將地址中的localhost替換成相應的主機IP;如果修改過MySQL數據庫的端口號(默認為3306),就需要加上修改后的端口號,如果未修改,那么端口號可以省略;同時連接數據庫的用戶名和密碼需要與數據庫創建時設置的用戶名和密碼保持一致。本示例中Spring數據庫的用戶名和密碼都是root。
定義jdbcTemplate時,需要將dataSource注入jdbcTemplate中,而其他需要使用jdbcTemplate的Bean,也需要將jdbcTemplate注入該Bean中(通常注入Dao類中,在Dao類中進行與數據庫的相關操作)。
- 新編Visual Basic程序設計上機實驗教程
- Web應用系統開發實踐(C#)
- The Supervised Learning Workshop
- 深入理解Bootstrap
- Mastering Apache Maven 3
- INSTANT Sinatra Starter
- 編程與類型系統
- SQL Server 2008 R2數據庫技術及應用(第3版)
- 深入淺出Python數據分析
- 軟件測試分析與實踐
- Web前端開發技術:HTML、CSS、JavaScript
- 安卓工程師教你玩轉Android
- 可視化H5頁面設計與制作:Mugeda標準教程
- Building an E-Commerce Application with MEAN
- Mastering Android Application Development