<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 【第七章】 對JDBC的支持 之 7.1 概述 ——跟我學spring3 ## 7.1? 概述 ### 7.1.1? JDBC回顧 傳統應用程序開發中,進行JDBC編程是相當痛苦的,如下所示: ``` //cn.javass.spring.chapter7\. TraditionalJdbcTest @Test public void test() throws Exception { Connection conn = null; PreparedStatement pstmt = null; try { conn = getConnection(); //1.獲取JDBC連接 //2.聲明SQL String sql = "select * from INFORMATION_SCHEMA.SYSTEM_TABLES"; pstmt = conn.prepareStatement(sql); //3.預編譯SQL ResultSet rs = pstmt.executeQuery(); //4.執行SQL process(rs); //5.處理結果集 closeResultSet(rs); //5.釋放結果集 closeStatement(pstmt); //6.釋放Statement conn.commit(); //8.提交事務 } catch (Exception e) { //9.處理異常并回滾事務 conn.rollback(); throw e; } finally { //10.釋放JDBC連接,防止JDBC連接不關閉造成的內存泄漏 closeConnection(conn); } } ``` 以上代碼片段具有冗長、重復、容易忘記某一步驟從而導致出錯、顯示控制事務、顯示處理受檢查異常等等。 有朋友可能重構出自己的一套JDBC模板,從而能簡化日常開發,但自己開發的JDBC模板不夠通用,而且對于每一套JDBC模板實現都差不多,從而導致開發人員必須掌握每一套模板。 Spring JDBC提供了一套JDBC抽象框架,用于簡化JDBC開發,而且如果各個公司都使用該抽象框架,開發人員首先減少了學習成本,直接上手開發,如圖7-1所示。 ![](https://box.kancloud.cn/2016-05-13_5735471f1c0a7.JPG) 圖7-1 Spring JDBC與傳統JDBC編程對比 ### 7.1.2? Spring對JDBC的支持 Spring通過抽象JDBC訪問并提供一致的API來簡化JDBC編程的工作量。我們只需要**聲明SQL、調用合適的Spring JDBC框架API、處理結果集**即可。事務由Spring管理,并將JDBC受查異常轉換為Spring一致的非受查異常,從而簡化開發。 Spring主要提供**JDBC模板方式、關系數據庫對象化方式和SimpleJdbc**方式三種方式來簡化JDBC編程,這三種方式就是Spring JDBC的工作模式: * **?JDBC模板方式:**Spring JDBC框架提供以下幾種模板類來簡化JDBC編程,實現GoF模板設計模式,將可變部分和非可變部分分離,可變部分采用回調接口方式由用戶來實現:如JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate。 * **關系數據庫操作對象化方式:**Spring JDBC框架提供了將關系數據庫操作對象化的表示形式,從而使用戶可以采用面向對象編程來完成對數據庫的訪問;如MappingSqlQuery、SqlUpdate、SqlCall、SqlFunction、StoredProcedure等類。這些類的實現一旦建立即可重用并且是線程安全的。 * **SimpleJdbc方式:**Spring JDBC框架還提供了**SimpleJdbc方式**來簡化JDBC編程,SimpleJdbcInsert 、 SimpleJdbcCall用來簡化數據庫表插入、存儲過程或函數訪問。 Spring JDBC還提供了一些強大的工具類,如DataSourceUtils來在必要的時候手工獲取數據庫連接等。 ### 7.1.4?? ?Spring的JDBC架構 Spring JDBC抽象框架由四部分組成:datasource、support、core、object。如圖7-2所示。 ![](https://box.kancloud.cn/2016-05-13_5735471f3abab.JPG) 圖7-2 Spring JDBC架構圖 **support包:**提供將JDBC異常轉換為DAO非檢查異常轉換類、一些工具類如JdbcUtils等。 **datasource包:**提供簡化訪問JDBC 數據源(javax.sql.DataSource實現)工具類,并提供了一些DataSource簡單實現類從而能使從這些DataSource獲取的連接能自動得到Spring管理事務支持。 **core包:**提供JDBC模板類實現及可變部分的回調接口,還提供SimpleJdbcInsert等簡單輔助類。 **?????? object包:**提供關系數據庫的對象表示形式,如MappingSqlQuery、SqlUpdate、SqlCall、SqlFunction、StoredProcedure等類,該包是基于core包JDBC模板類實現。 原創內容,轉載請注明 出處【[http://sishuok.com/forum/blogPost/list/0/2489.html](http://sishuok.com/forum/blogPost/list/0/2489.html#7197)】
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看