欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

怎么簡述SpringJDBC

本篇文章給大家分享的是有關(guān)怎么簡述Spring JDBC,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比樂清網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式樂清網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋樂清地區(qū)。費用合理售后完善,十載實體公司更值得信賴。

這里記錄我對Spring JDBC框架的學(xué)習(xí)。由于Spring JDBC和我之前做的工作有很多共同之處,學(xué)習(xí)經(jīng)典Framework的設(shè)計,取長補(bǔ)短,為我所用。在這里,先佩服一下Rod JohnSon,他對數(shù)據(jù)庫,JDBC的理解非常深。看Spring jdbc框架的設(shè)計和源代碼,帶給了我很多以前沒有想到的東西。我們知道,Spring JDBC的主要目標(biāo)是為了簡化JDBC的編程,方便我們構(gòu)建健壯的應(yīng)用程序。這里,它的一個基本設(shè)計理念,就是將JDBC編程中變化的和不變化的分開。在JDBC中,什么是變化的?毫無疑問,SQL語句是變化的。那什么是不變化的?正確的使用JDBC的方式是不變化的。

先看一段代碼。(自己的代碼就不拿來做示范了,先看Rod書吧)

  1. public List getAvailableSeatlds(DataSource ds, int performanceld,    

  2.         int seatType) throws ApplicationException {         

  3.      String sql = "SELECT seat_id AS id FROM available_seats " +    

  4.                    "WHERE performance_id = ? AND price_band_id = ?";List seatlds = new LinkedList();    

  5.     Connection con = null;    

  6.       PreparedStatement ps = null;    

  7.       ResultSet rs = null;    

  8.      try {    

  9.         con = ds.getConnection();   //1。建立Connection  

  10.        ps = con.prepareStatement(sql);  //2。創(chuàng)建preparedStatement  

  11.         ps.setlnt(1, performanceld);  //3。設(shè)置ps的參數(shù)  

  12.        ps.setlnt(2, seatType);  

  13.        rs = ps.executeQuery();      //4.執(zhí)行查詢

  14.        while (rs.next()) {         //5.解析ResultSet

  15.         int seatld = rs.getlnt(1);    

  16.           seatlds.add(new Integer(seatld));    

  17.        }                                                                                                                        

  18.        rs.close();                //6.關(guān)閉資源,做好善后工作。rs,ps,connection  

  19.        ps.close(); 

  20.          }    

  21.       catch (SQLException ex) {    

  22.        throw new ApplicationException ("Couldn't run query [" + sql + "]", ex);    

  23.      }    

  24.      finally {    

  25.         try {    

  26.          if (con != null)    

  27.           con.close();  //如果沒有連接池的話,不要輕易關(guān)。connection屬于耗費資源:)  

  28.        }    

  29.        catch (SQLException ex) {    

  30.          // Log and ignore    

  31.        }    

  32.      }    

  33.      return seatlds;    

  34.     }    

從上面看,什么是不變的。首先,咱們這個使用JDBC的方式是良好的,正確的,也是不變的,也就是workflow不變。其次,這里頭的很多操作是不變的,比如說:關(guān)閉資源,處理異常。
◆什么是變的?設(shè)置PreparedStament的參數(shù)是變化的,利用PreparedStatement做什么是變化的。
◆還有什么是變的?取得Connection可能是變化的,我們可以從ConnectionPool中取,也可以裸從Database取。
◆還有什么是變的?在主工作流之外,還可以對PreparedStament設(shè)置一些屬性。比如fetchSize等。
◆還有什么是變的?解析ResultSet是變的。但是可以抽象,都是從結(jié)果集中取得你想要的東西。

很好。經(jīng)過分析,我們會自然而然的想到Template設(shè)計模式。用模板方法來描述我們的工作流。對于固定的操作,我們會把它建模為一些幫助類,利用這些類來完成固定操作,這些操作在Template方法中被調(diào)用。

對于哪些可以變的方法。我們也發(fā)現(xiàn),其實它要實現(xiàn)的功能是一樣的。抽象起來,我們可以用一些接口來描述這些功能。比如說數(shù)據(jù)庫連接管理的功能。

設(shè)計取決于我們考慮問題的深度,以及我們對過程劃分的粒度。

以上就是怎么簡述Spring JDBC,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文標(biāo)題:怎么簡述SpringJDBC
標(biāo)題URL:http://chinadenli.net/article12/geojgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計企業(yè)建站網(wǎng)站維護(hù)網(wǎng)站內(nèi)鏈動態(tài)網(wǎng)站自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司