DBCP连接池配置详解,参数列表

Spring DBCP配置


    
    
  1. <bean id=“dataSource” class=“org.apache.commons.dbcp.BasicDataSource” destroy-method=“close”>
  2. <property name=“driverClassName” value=“com.mysql.jdbc.Driver”/>
  3. <property name=“url” value=“jdbc:mysql://192.168.0.109:3306/test?useUnicode=true&characterEncoding=UTF-8”/>
  4. <property name=“username” value=“root”/>
  5. <property name=“password” value=“root”/>
  6. <!–initialSize: 初始化连接–>
  7. <property name=“initialSize” value=“5”/>
  8. <!–maxIdle: 最大空闲连接–>
  9. <property name=“maxIdle” value=“10”/>
  10. <!–minIdle: 最小空闲连接–>
  11. <property name=“minIdle” value=“5”/>
  12. <!–maxActive: 最大连接数量–>
  13. <property name=“maxActive” value=“15”/>
  14. <!–removeAbandoned: 是否自动回收超时连接–>
  15. <property name=“removeAbandoned” value=“true”/>
  16. <!–removeAbandonedTimeout: 超时时间(以秒数为单位)–>
  17. <property name=“removeAbandonedTimeout” value=“180”/>
  18. <!–maxWait: 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒–>
  19. <property name=“maxWait” value=“3000”/>
  20. <!– 在空闲连接回收器执行周期(毫秒) –>
  21. <property name=“timeBetweenEvictionRunsMillis” value=“10000”/>
  22. <!– 在每次空闲连接回收器线程(如果有)运行时检查的连接数量 –>
  23. <property name=“numTestsPerEvictionRun” value=“10”/>
  24. <!– 最小空闲时间–>
  25. <property name=“minEvictableIdleTimeMillis” value=“10000”/>
  26. <!– 验证链接是否有效的sql语句 –>
  27. <property name=“validationQuery” value=“select 1” />
  28. <!– 获取链接之前是否测试链接的可用性 –>
  29. <property name=“testOnBorrow” value=“true”/>
  30. </bean>

部分参数中文说明

参数

默认值

可选值

格式

说明

username  

用户名

password  

密码

url

数据库连接url

driverClassName 

驱动类

connectionProperties  

 [propertyName=property;]*

当建立新连接时被发送给JDBC驱动的连接参数

defaultAutoCommit

true

true、false

defaultReadOnly

driver default

driver default
true
false

默认只读状态,不指定则是驱动的默认值

defaultTransactionIsolation 

driver default

ONE
READ_COMMITTED
READ_UNCOMMITTED
REPEATABLE_READ
SERIALIZABLE

实物的隔离级别
ONE
不支持
READ_COMMITTED
读已提交
READ_UNCOMMITTED
读未提交
REPEATABLE_READ
可重复读
SERIALIZABLE
串行化

defaultCatalog

默认的database的名称,多数驱动已经在url中指定

initialSize

0

非负整数

初始化连接数

maxActive

8

整数

最大活跃连接数,负数则无限制

maxIdle

8

整数

最大空闲连接数,超出会释放连接

minIdle

0

整数

最小空闲数

maxWait

无限

整数

最大等待时间:当没有可用连接时,连接池等待连接
被归还的最大时间(以毫秒计数),-1代表无限

validationQuery

检查连接是否可用的查询语句

testOnCreate

false

true、false

连接被create时是否校验可用,
validationQuery必须给定合法值

testOnBorrow

true

true、false

连接被get时是否校验可用,
validationQuery必须给定合法值

testOnReturn

false

连接被归还到连接池中时是否校验可用
validationQuery
必须给定合法值

testWhileIdle

false

连接被空闲连接回收器检测回收时否校验可用
validationQuery
必须给定合法值

timeBetweenEvictionRunsMillis

-1

空闲连接回收器运行周期,毫秒,-1表示不运行

numTestsPerEvictionRun

3

在每次空闲连接回收器线程(如果有)
运行时检查的连接数量

minEvictableIdleTimeMillis

1000 * 60 * 30

最小空闲时间,毫秒

poolPreparedStatements

false

是否启池的prepared statement 池功能

maxOpenPreparedStatements

无限制

statement池能够同时分配的打开的
statements
的最大数量
(前提:poolPreparedStatements=true)

accessToUnderlyingConnectionAllowed

false

true、false

是否运行获取底层的Connection(驱动提供的连接)
获取方式:
Connection conn = ds.getConnection();
Connection dconn = ((DelegatingConnection) conn).getInnermostDelegate();

removeAbandoned

removeAbandonedTimeout

logAbandoned


            </div>

Spring DBCP配置


  
  
  1. <bean id=“dataSource” class=“org.apache.commons.dbcp.BasicDataSource” destroy-method=“close”>
  2. <property name=“driverClassName” value=“com.mysql.jdbc.Driver”/>
  3. <property name=“url” value=“jdbc:mysql://192.168.0.109:3306/test?useUnicode=true&characterEncoding=UTF-8”/>
  4. <property name=“username” value=“root”/>
  5. <property name=“password” value=“root”/>
  6. <!–initialSize: 初始化连接–>
  7. <property name=“initialSize” value=“5”/>
  8. <!–maxIdle: 最大空闲连接–>
  9. <property name=“maxIdle” value=“10”/>
  10. <!–minIdle: 最小空闲连接–>
  11. <property name=“minIdle” value=“5”/>
  12. <!–maxActive: 最大连接数量–>
  13. <property name=“maxActive” value=“15”/>
  14. <!–removeAbandoned: 是否自动回收超时连接–>
  15. <property name=“removeAbandoned” value=“true”/>
  16. <!–removeAbandonedTimeout: 超时时间(以秒数为单位)–>
  17. <property name=“removeAbandonedTimeout” value=“180”/>
  18. <!–maxWait: 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒–>
  19. <property name=“maxWait” value=“3000”/>
  20. <!– 在空闲连接回收器执行周期(毫秒) –>
  21. <property name=“timeBetweenEvictionRunsMillis” value=“10000”/>
  22. <!– 在每次空闲连接回收器线程(如果有)运行时检查的连接数量 –>
  23. <property name=“numTestsPerEvictionRun” value=“10”/>
  24. <!– 最小空闲时间–>
  25. <property name=“minEvictableIdleTimeMillis” value=“10000”/>
  26. <!– 验证链接是否有效的sql语句 –>
  27. <property name=“validationQuery” value=“select 1” />
  28. <!– 获取链接之前是否测试链接的可用性 –>
  29. <property name=“testOnBorrow” value=“true”/>
  30. </bean>

部分参数中文说明

参数

默认值

可选值

格式

说明

username  

用户名

password  

密码

url

数据库连接url

driverClassName 

驱动类

connectionProperties  

 [propertyName=property;]*

当建立新连接时被发送给JDBC驱动的连接参数

defaultAutoCommit

true

true、false

defaultReadOnly

driver default

driver default
true
false

默认只读状态,不指定则是驱动的默认值

defaultTransactionIsolation 

driver default

ONE
READ_COMMITTED
READ_UNCOMMITTED
REPEATABLE_READ
SERIALIZABLE

实物的隔离级别
ONE
不支持
READ_COMMITTED
读已提交
READ_UNCOMMITTED
读未提交
REPEATABLE_READ
可重复读
SERIALIZABLE
串行化

defaultCatalog

默认的database的名称,多数驱动已经在url中指定

initialSize

0

非负整数

初始化连接数

maxActive

8

整数

最大活跃连接数,负数则无限制

maxIdle

8

整数

最大空闲连接数,超出会释放连接

minIdle

0

整数

最小空闲数

maxWait

无限

整数

最大等待时间:当没有可用连接时,连接池等待连接
被归还的最大时间(以毫秒计数),-1代表无限

validationQuery

检查连接是否可用的查询语句

testOnCreate

false

true、false

连接被create时是否校验可用,
validationQuery必须给定合法值

testOnBorrow

true

true、false

连接被get时是否校验可用,
validationQuery必须给定合法值

testOnReturn

false

连接被归还到连接池中时是否校验可用
validationQuery
必须给定合法值

testWhileIdle

false

连接被空闲连接回收器检测回收时否校验可用
validationQuery
必须给定合法值

timeBetweenEvictionRunsMillis

-1

空闲连接回收器运行周期,毫秒,-1表示不运行

numTestsPerEvictionRun

3

在每次空闲连接回收器线程(如果有)
运行时检查的连接数量

minEvictableIdleTimeMillis

1000 * 60 * 30

最小空闲时间,毫秒

poolPreparedStatements

false

是否启池的prepared statement 池功能

maxOpenPreparedStatements

无限制

statement池能够同时分配的打开的
statements
的最大数量
(前提:poolPreparedStatements=true)

accessToUnderlyingConnectionAllowed

false

true、false

是否运行获取底层的Connection(驱动提供的连接)
获取方式:
Connection conn = ds.getConnection();
Connection dconn = ((DelegatingConnection) conn).getInnermostDelegate();

removeAbandoned

removeAbandonedTimeout

logAbandoned


            </div>

猜你喜欢

转载自blog.csdn.net/weixin_39805338/article/details/81063396