转载:https://blog.csdn.net/yyyuuueeee/article/details/52268619
<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 |
|
|
|
|
|
|
|
|
|