DBCP串連池簡介,dbcp簡介

來源:互聯網
上載者:User

DBCP串連池簡介,dbcp簡介

DBCP串連池簡介

1、資料庫連接基礎

       資料庫連接池基礎主要包括以下三個方面的內容:資料庫連接池的基本概念、資料庫連接池的工作原理、Java開源的串連池。下面將從這三個方面一一介紹:

(1)資料庫連接池的基本概念

       資料庫連接是一種關鍵的、有限的、昂貴的資源,這一點在多使用者的Web應用程式中體現得尤為突出。對資料庫連接的管理能顯著影響到整個應用程式的伸縮性和健壯性,影響到程式的效能指標。因此,資料庫連接池正是針對這個問題提出來的。

       資料庫連接池負責分配、管理和釋放資料庫連接,它允許應用程式重複使用一個現有的資料庫連接,而不再是重建立立一個資料庫連接;釋放空閑時間超過最大空閑時間的資料庫連接,以避免因為沒有釋放資料庫連接而引起的資料庫連接遺漏。

       資料庫連接池在初始化時將建立一定數量的資料庫連接放到串連池中,這些資料庫連接的數量是由最小資料庫連接數來設定的。無論這些資料庫連接是否被使用,串連池都將一直保持至少擁有這麼多的串連數量。串連池的最大資料庫連接數量限定了這個串連池能佔有的最大串連數,當應用程式向串連池請求的串連數超過最大串連數時,這些請求將被加入到等待隊列中。

(2)資料庫連接池的工作原理

       下面請看一個具體的資料庫連接池工作原理:

 

  

       圖中所示的是一個Web應用申請串連,實際上是從串連池裡取得一個串連,使用完串連後又返回到該串連池容器中。

(3)Java開源的串連池

       由於Java的開源特性,產生了許多Java開源的串連池。例如以下資料庫連接池:Jakarta DBCP、C3P0、Proxool、DBPool等。

       其中,Jakarta DBCP具體是:一個依賴Jakarta commons-pool對象池的資料庫連接池,DBCP可以直接第在應用程式中使用。這也是本文所要介紹的技術要點。

       C3P0具體是:一個開放原始碼的JDBC串連池,它在lib目錄中與Hibernate一起發布,包括了實現jdbc3和jdbc2擴充規範說明的Connection池和Statement池的DataSources對象。

       此處就簡單說明一下一上兩個串連池,其他串連池此處就不說明了(⊙o⊙)哦。

 

2、DBCP串連池基礎簡介

      DBCP是Java開源串連池中最常用的一種,它一般應用在資料庫使用非常頻繁的系統中,可以處理資料庫連接的大量請求,是做大型網站的首選資料庫配置。

      在DBCP建立的過程中,它也遵循普通串連池的建立機制。例如使用Struts架構開發時,如果在struts-config.xml中配置了DBCP組件,則在Struts啟動時就會建立DBCP串連池。

 

3、Struts架構中配置DBCP串連池樣本

      以下是使用Struts架構時,其中struts-config.xml檔案中配置DBCP組件的範例程式碼:

 

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" 
"http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config> <!-- 配置資料來源 --> <data-sources> <data-source type="org.apache.commons.dbcp.BasicDataSource"> <set-property property="driverClassName" value="com.mysql.jdbc.Driver" /> <set-property property="url" value="jdbc:mysql://localhost:3306/demo" /> <set-property property="username" value="root" /> <set-property property="password" value="" /> <set-property property="maxActive" value="10" /> <set-property property="maxWait" value="5000" /> <set-property property="defaultAutoCommit" value="false" /> <set-property property="defaultReadOnly" value="false" /> <set-property property="validationQuery" value="SELECT COUNT(*) FROM user" /> </data-source> </data-sources></struts-config>

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.