Spring 5.2.2 核心技術(16)

使用JDBC進行數據訪問spring

     Spring框架JDBC抽象提供的值最好由下表中列出的操做序列來顯示。下表顯示了Spring負責哪些操做以及哪些操做是須要你去處理。數據庫

 動做行爲安全

Spring  微信

你負責的app

定義鏈接參數框架


x測試

打開鏈接優化

x編碼


指定SQL語句spa


x

申明參數並提供參數值


x

預處理並執行語句

x


設置循環以遍歷結果(若是有)。

x


處理每一個迭代。


x

處理異常

x


處理事務

x


關閉鏈接、語句和結果集。

x


JDBC數據庫訪問方法的選擇

     你能夠在幾種方法中進行選擇,以造成JDBC數據庫訪問的基礎。除了三種類型的JdbcTemplate以外,一種新的SimpleJdbcInsert SimpleJdbcCall 方法優化了數據庫元數據,而RDBMS(Relational Database Management System)對象樣式採用了與JDO(Java Data Object )查詢設計相似的面向對象的方法。一旦你開始使用這些方法之一,仍然能夠混合和匹配包含來自不一樣方法的特性。全部方法都須要一個兼容JDBC2.0的驅動程序,而一些高級特性須要一個JDBC3.0驅動程序。

  • JdbcTemplate是經典的、最流行的Spring JDBC方法。這種方法和全部其餘方法都在覆蓋下使用JdbcTemplate

  • NamedParameterJdbcTemplate 封裝JdbcTemplate以提供命名參數,而不是傳統的JDBC ?佔位符。當一個SQL語句有多個參數時,這種方法提供了更好的可讀性和易用性。

  • SimpleJdbcInsert SimpleJdbcCall 優化數據庫元數據以限制必要的配置量。這種方法簡化了編碼,所以您只須要提供表或過程的名稱,並提供與列名匹配的參數映射。只有當數據庫提供足夠的元數據時,此操做纔有效。若是數據庫不提供此元數據,則必須提供參數的顯式配置或指定配置。

  • RDBMS對象,包括MappingSqlQuerySqlUpdate StoredProcedure,要求在初始化數據訪問層期間建立可重用和線程安全的對象。這種方法是在JDO查詢以後建立的,在JDO查詢中定義查詢字符串、聲明參數和編譯查詢。一旦這樣作,就可使用各類參數值屢次調用execute方法。


Spring  JDBC包層次結構

Spring框架的JDBC抽象框架由四個不一樣的包組成:

coreorg.springframework.jdbc.core包含JdbcTemplate 類及其各類回調接口,以及各類相關類。名爲org.springframework.jdbc.core.simple的子包包含SimpleJdbcInsert SimpleJdbcCall 類。另外一個名爲org.springframework.jdbc.core.namedparam的子包包含NamedParameterJdbcTemplate 類和相關的支持類。

datasource:org.springframework.jdbc.datasource包含一個實用程序類,用於輕鬆訪問數據源和各類簡單的數據源實現,可使用它們在Java EE容器外測試和運行未修改的jdbc代碼。名爲org.springfamework.jdbc.datasource.embedded的子包支持使用Java數據庫引擎(如HSQL、H2和Derby)建立嵌入式數據庫。

objectorg.springframework.jdbc.object包含將RDBMS查詢、更新和存儲過程表示爲線程安全、可重用對象的類。請參見將JDBC操做建模爲Java對象。這種方法由JDO建模,儘管查詢返回的對象天然與數據庫斷開鏈接。這種更高級別的JDBC抽象依賴於org.springframework.jdbc.core包中的較低級別抽象。

supportorg.springframework.jdbc.support包提供了SQLException 轉換功能和一些實用程序類。JDBC處理期間拋出的異常將轉換爲org.springframework.dao包中定義的異常。這意味着使用Spring JDBC抽象層的代碼不須要實現JDBC或RDBMS特定的錯誤處理。全部轉換的異常都未選中,這使你能夠選擇捕獲可恢復的異常,同時容許將其餘異常傳播到調用方。


使用JDBC核心類控制基本JDBC處理和錯誤處理

     介紹如何使用JDBC核心類來控制基本的JDBC處理,包括錯誤處理。它包括如下主題:

  • 使用JdbcTemplate

  • 使用NamedParameterJdbcTemplate 

  • 使用SQLExceptionTranslator

  • 運行Statements

  • 運行Queries

  • 更新Database

  • 檢索自動生成的Key


明天開始分別講上述 7個主題的使用。

關注和轉發 Spring 中文社區:


本文分享自微信公衆號 - Spring中文社區(gh_81d233bb13a4)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索