黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

【第七章】 對JDBC的支持 之 7.1 概述 ——跟我

系統 2196 0

7.1? 概述

7.1.1? JDBC回顧

?????? 傳統應用程序開發中,進行JDBC編程是相當痛苦的,如下所示:

?

java代碼:
        //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所示。

? 【第七章】 對JDBC的支持 之 7.1 概述 ——跟我學spring3

圖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所示。

? 【第七章】 對JDBC的支持 之 7.1 概述 ——跟我學spring3

圖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

【第七章】 對JDBC的支持 之 7.1 概述 ——跟我學spring3


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論