首頁 >Java >java教程 >簡述JdbcTemolate類的涵義

簡述JdbcTemolate類的涵義

巴扎黑
巴扎黑原創
2017-07-22 14:25:292180瀏覽

JdbcTemolate類別的介紹<一>

JdbcTemplate是Spring JDBC的核心類,封裝了常見的JDBC的用法,同時盡量避免常見的錯誤。這類簡化JDBC的操作,我們只需要書寫提供SQL的程式碼和如何回傳的結果的程式碼。 JdbcTemplate可以執行查詢、更新等操作、初始化對ResultSets的遍歷操作以及捕獲JDBC異常並將其轉換成在org.springframework.dao包下定義的更常規更有用的異常類別。

透過實作回呼接口,可以自訂這些回呼函數的具體操作。其中,PreparedStatementSetter和RowMapper是兩個最常用的回呼介面。

所有的SQL的操作都被以org.springframework.jdbc.core.JdbcTemplate下的debug等級的日誌所記錄。

說明:該類別的實例在配置後是線程安全

JdbcAccessor類別介紹

JdbcAccessor類別是JdbcTemplate類的基類,用於處理JDBC的連線操作,同時也定義資料來源、異常翻譯器等常用屬性。

JdbcOperations介面介紹

JdbcOperations介面定義了JDBC的一些基本操作,具體實作則放在JdbcTemplate類別中,不建議直接使用,但是由於比較適合於mock和stub,因此在測試的時候是非常好的選擇。

JdbcTemplate的變數

ignoreWarnings

如果該變數為false,那麼就會拋出JDBC警告(SQL warnings)。預設為true。

說明:SQL Warnings 來處理較不嚴重的異常情況、非致命錯誤或意想不到的條件,因此可以忽略它們。

fetchSize

如果變數為非負值,那將賦值給用於執行查詢的statements的fetchSize變數。預設為-1。

maxRows

如果變數為非負值,那將賦值給用於執行查詢的statements的maxRows變數。預設為-1。

queryTimeout

如果變數為非負值,那將賦值給用於執行查詢的statements的queryTimeout變數。預設為-1。

skipResultsProcessing

如果該變數為true, 那麼所有可調用語句處理都會繞過所有結果檢查,這可以用來避免一些早期版本oracle jdbc驅動程式(如10.1.0.2 )中的bug。預設為false。

skipUndeclaredResults

如果該變數為true,那麼有輸出參數的預存程序的呼叫結果檢查將被省略,除非skipResultsProcessing為true,否側其他回傳結果都會被處理。預設為false。

dataSource

該變數為javax.sql.DataSource類型,從JdbcAccessor類別繼承而來,可以為null,但是在Spring初始化Bean的時候會檢查該變數,如果為null,將拋出IllegalArgumentException,提示"Property 'dataSource' is required"。

exceptionTranslator

該變數屬於一個函數式接口,用於將SQLException和Spring自訂的DataAccessException轉化,從JdbcAccessor類別繼承而來,可以為null。

lazyInit

如果變數為true,那麼知道第一次遇到SQLException,否則不初始化exceptionTranslator。預設為true。

因為JdbcAccessor類別繼承了InitializingBean接口,而JdbcTemplate類別由繼承了JdbcAccessor類,因此Spring初始化JdbcTemplate這個bean的時候會呼叫afterPropertiesSet。此時如果lazyInit為false且exceptionTranslator,那麼將對exceptionTranslator嘗試初始化,如果dataSource為null則使用SQLStateSQLExceptionTranslator進行初始化,否則使用SQLErrorCodeSQLExceptionTranslator。

nativeJdbcExtractor

自訂本機JDBC操作對象,用於操作非標準的JDBC API。

為了更好支援JDBC4,SpringFramework工作組於2017年6月7號在Github上的master分支上刪除了nativeJdbcExtractor,但其他分支還存在該變量,尚不清楚為了是否恢復該變數

以上是簡述JdbcTemolate類的涵義的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn