【Java】資料庫連接池技術

來源:互聯網
上載者:User

標籤:style   blog   http   os   java   使用   io   ar   檔案   

JDBC的問題

在程式中,我們經常要建立與資料庫的串連,之後再關閉這個串連。我們知道,資料庫連接對象的建立是比較消耗系統效能的,這些頻繁的操作勢必會消耗大量的系統資源。因此我們需要採用更高效的資料庫訪問技術。

 

資料庫連接池的概念

在JDBC2.0中提出了資料庫連接池技術,它提供了javax.Sql.DataSource(資料來源)介面,它負責建立與資料庫的串連。通過客戶之間共用一組串連,而不是在它們需要的時候為他們建立立串連,這樣就可以改善資源的使用,提高應用程式的響應能力。

 

串連池技術的核心思想

串連池技術的核心思想是:串連複用。通過建立一個資料庫連接池以及一套串連使用、分配、治理策略,是的該串連池的串連可以得到高效、安全的複用,避免了資料庫連接的頻繁建立、關閉的開銷。

 

基於JDBC的資料庫連接池技術

資料庫連接池技術是基於JDBC技術的,對JDBC的原始串連進行了封裝,從而提高了開發效率。

 

資料來源的建立與JNDI資源

DataSource的建立

DataSource對象由Web容器提供,因此不能再程式中採用建立一個執行個體的方式來產生DataSource對象。

DataSource的擷取

當啟動Web容器之後,Web容器建立DataSource對象,之後就通過JNDI技術來獲得DataSource對象。

DataSource建立、擷取的基本流程

由於DataSource對象是有Web容器提供的,但Web程式不會平白無故的建立DataSource,必須通過一個"訊息"通知Web容器要建立資料來源對象。通常我們用的Web容器時Tomcat,在Tomcat中這個"訊息"就是一個XML設定檔,通過context.xml檔案配置資料來源。

在Tomcat的安裝路徑下的conf 目錄下有一個context.xml檔案。當啟動Tomcat後,Tomcat會載入一系列的設定檔,並且解析設定檔中的內容,當然也包括context.xml檔案。當Tomcat檢查到context.xml檔案中有資料來源對象的配置時,Tomcat就會跟資料來源配置資訊建立相應的資料庫連接。在建立資料來源的過程中,Tomcat會根據配置資訊,比如說:資料來源的名稱、資料來源的類型、資料來源資料連線的最大數目、資料庫連接的最大空閑時間等資訊建立出相應的串連,形成資料庫連接池。

之後在程式中通過JNDI技術,根據資料來源的名稱尋找到相應的資料庫連接池,擷取串連,供程式使用。

 

JNDI的配置

Tomcat把DataSource作為一種可配置的JNDI資源來處理。其配置如下:

<Context>

……

<Resource name="jdbc/books" auth="Container" type="javax.sql.DataSource" maxActive="1000" maxIdle="30" maxWait="10000" username="sa" password="sa"

driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"

url="jdbc:sqlserver://localhost:1433; DatabaseName=books"

 />

</Context>

 

通過JNDI在程式中擷取DataSource

在程式中,通過javax.naming.Context對象獲得DataSource對象,如下:

Context cxt = new InitialContext();

當Web容器載入到該句代碼時,當完成建立執行個體後,Context對象就擷取了DataSource對象

之後通過Context對象的lookup方法尋找出資料來源,該方法的參數是以"java:comp/env"為首碼,以設定檔中的資料來源的名稱結尾的字串。如下:

DataSource ds = (DataSource)cxt.lookup("java:comp/env/jdbc/books");

取得一個資料來源之後,將其轉換為DataSource對象。

獲得DataSource之後,便通過DataSource對象取得Connection,如下:

Connection conn = ds.getConnection();

有了Connection對象之後就可以對資料進行其他動作了。

 

http://blog.163.com/[email protected]/blog/static/22928525201021661922648/

【Java】資料庫連接池技術

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.