DBCP連線池配置詳解
Spring DBCP配置
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://192.168.0.109:3306/test?useUnicode=true&characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="root"/> <!--initialSize: 初始化連線--> <property name="initialSize" value="5"/> <!--maxIdle: 最大空閒連線--> <property name="maxIdle" value="10"/> <!--minIdle: 最小空閒連線--> <property name="minIdle" value="5"/> <!--maxActive: 最大連線數量--> <property name="maxActive" value="15"/> <!--removeAbandoned: 是否自動回收超時連線--> <property name="removeAbandoned" value="true"/> <!--removeAbandonedTimeout: 超時時間(以秒數為單位)--> <property name="removeAbandonedTimeout" value="180"/> <!--maxWait: 超時等待時間以毫秒為單位 6000毫秒/1000等於60秒--> <property name="maxWait" value="3000"/> <!-- 在空閒連接回收器執行週期(毫秒) --> <property name="timeBetweenEvictionRunsMillis" value="10000"/> <!-- 在每次空閒連接回收器執行緒(如果有)執行時檢查的連線數量 --> <property name="numTestsPerEvictionRun" value="10"/> <!-- 最小空閒時間--> <property name="minEvictableIdleTimeMillis" value="10000"/> <!-- 驗證連結是否有效的sql語句 --> <property name="validationQuery" value="select 1" /> <!-- 獲取連結之前是否測試連結的可用性 --> <property name="testOnBorrow" value="true"/> </bean>
部分引數中文說明
引數 |
預設值 |
可選值 |
格式 |
說明 |
username |
使用者名稱 |
|||
password |
密碼 |
|||
url |
資料庫連線url |
|||
driverClassName |
驅動類 |
|||
connectionProperties |
[propertyName=property;]* |
當建立新連線時被髮送給JDBC驅動的連線引數 |
||
defaultAutoCommit |
true |
true、false |
||
defaultReadOnly |
driver default |
driver default |
預設只讀狀態,不指定則是驅動的預設值 |
|
defaultTransactionIsolation |
driver default |
ONE |
實物的隔離級別 |
|
defaultCatalog |
預設的database的名稱,多數驅動已經在url中指定 |
|||
initialSize |
0 |
非負整數 |
初始化連線數 |
|
maxActive |
8 |
整數 |
最大活躍連線數,負數則無限制 |
|
maxIdle |
8 |
整數 |
最大空閒連線數,超出會釋放連線 |
|
minIdle |
0 |
整數 |
最小空閒數 |
|
maxWait |
無限 |
整數 |
最大等待時間:當沒有可用連線時,連線池等待連線 |
|
validationQuery |
檢查連線是否可用的查詢語句 |
|||
testOnCreate |
false |
true、false |
連線被create時是否校驗可用, |
|
testOnBorrow |
true |
true、false |
連線被get時是否校驗可用, |
|
testOnReturn |
false |
連線被歸還到連線池中時是否校驗可用 |
||
testWhileIdle |
false |
連線被空閒連接回收器檢測回收時否校驗可用 |
||
timeBetweenEvictionRunsMillis |
-1 |
空閒連接回收器執行週期,毫秒,-1表示不執行 |
||
numTestsPerEvictionRun |
3 |
在每次空閒連接回收器執行緒(如果有) |
||
minEvictableIdleTimeMillis |
1000 * 60 * 30 |
最小空閒時間,毫秒 |
||
poolPreparedStatements |
false |
是否啟池的prepared statement 池功能 |
||
maxOpenPreparedStatements |
無限制 |
statement池能夠同時分配的開啟的 |
||
accessToUnderlyingConnectionAllowed |
false |
true、false |
是否執行獲取底層的Connection(驅動提供的連線) |
|
removeAbandoned |
||||
removeAbandonedTimeout |
||||
logAbandoned |