JdbcTemplate是Spring JDBC的核心類,封裝了常見的JDBC的用法,同時盡量避免常見的錯誤。這類簡化JDBC的操作,我們只需要書寫提供SQL的程式碼和如何回傳的結果的程式碼。 JdbcTemplate可以執行查詢、更新等操作、初始化對ResultSets的遍歷操作以及捕獲JDBC異常並將其轉換成在org.springframework.dao包下定義的更常規更有用的異常類別。
透過實作回呼接口,可以自訂這些回呼函數的具體操作。其中,PreparedStatementSetter和RowMapper是兩個最常用的回呼介面。
所有的SQL的操作都被以org.springframework.jdbc.core.JdbcTemplate下的debug等級的日誌所記錄。
說明:該類別的實例在配置後是線程安全
JdbcAccessor類別是JdbcTemplate類的基類,用於處理JDBC的連線操作,同時也定義資料來源、異常翻譯器等常用屬性。
JdbcOperations介面定義了JDBC的一些基本操作,具體實作則放在JdbcTemplate類別中,不建議直接使用,但是由於比較適合於mock和stub,因此在測試的時候是非常好的選擇。
如果該變數為false,那麼就會拋出JDBC警告(SQL warnings)。預設為true。
說明:SQL Warnings 來處理較不嚴重的異常情況、非致命錯誤或意想不到的條件,因此可以忽略它們。
如果變數為非負值,那將賦值給用於執行查詢的statements的fetchSize變數。預設為-1。
如果變數為非負值,那將賦值給用於執行查詢的statements的maxRows變數。預設為-1。
如果變數為非負值,那將賦值給用於執行查詢的statements的queryTimeout變數。預設為-1。
如果該變數為true, 那麼所有可調用語句處理都會繞過所有結果檢查,這可以用來避免一些早期版本oracle jdbc驅動程式(如10.1.0.2 )中的bug。預設為false。
如果該變數為true,那麼有輸出參數的預存程序的呼叫結果檢查將被省略,除非skipResultsProcessing為true,否側其他回傳結果都會被處理。預設為false。
該變數為javax.sql.DataSource類型,從JdbcAccessor類別繼承而來,可以為null,但是在Spring初始化Bean的時候會檢查該變數,如果為null,將拋出IllegalArgumentException,提示"Property 'dataSource' is required"。
該變數屬於一個函數式接口,用於將SQLException和Spring自訂的DataAccessException轉化,從JdbcAccessor類別繼承而來,可以為null。
如果變數為true,那麼知道第一次遇到SQLException,否則不初始化exceptionTranslator。預設為true。
因為JdbcAccessor類別繼承了InitializingBean接口,而JdbcTemplate類別由繼承了JdbcAccessor類,因此Spring初始化JdbcTemplate這個bean的時候會呼叫afterPropertiesSet。此時如果lazyInit為false且exceptionTranslator,那麼將對exceptionTranslator嘗試初始化,如果dataSource為null則使用SQLStateSQLExceptionTranslator進行初始化,否則使用SQLErrorCodeSQLExceptionTranslator。
自訂本機JDBC操作對象,用於操作非標準的JDBC API。
為了更好支援JDBC4,SpringFramework工作組於2017年6月7號在Github上的master分支上刪除了nativeJdbcExtractor,但其他分支還存在該變量,尚不清楚為了是否恢復該變數
以上是簡述JdbcTemolate類的涵義的詳細內容。更多資訊請關注PHP中文網其他相關文章!