| @@ -13,13 +13,14 @@ | |||||
| * [配置文件详解](#配置文件详解) | * [配置文件详解](#配置文件详解) | ||||
| * [数据库连接参数](#数据库连接参数) | * [数据库连接参数](#数据库连接参数) | ||||
| * [连接池数据基本参数](#连接池数据基本参数) | * [连接池数据基本参数](#连接池数据基本参数) | ||||
| * [连接存活参数](#连接存活参数) | |||||
| * [连接检查参数](#连接检查参数) | * [连接检查参数](#连接检查参数) | ||||
| * [缓存语句](#缓存语句) | * [缓存语句](#缓存语句) | ||||
| * [事务相关参数](#事务相关参数) | * [事务相关参数](#事务相关参数) | ||||
| * [连接泄漏回收参数](#连接泄漏回收参数) | * [连接泄漏回收参数](#连接泄漏回收参数) | ||||
| * [其他](#其他) | * [其他](#其他) | ||||
| * [源码分析](#源码分析) | * [源码分析](#源码分析) | ||||
| * [数据源创建](#数据源创建) | |||||
| * [创建数据源](#创建数据源) | |||||
| * [`BasicDataSource.getConnection()`](#basicdatasourcegetconnection) | * [`BasicDataSource.getConnection()`](#basicdatasourcegetconnection) | ||||
| * [`BasicDataSource.createDataSource()`](#basicdatasourcecreatedatasource) | * [`BasicDataSource.createDataSource()`](#basicdatasourcecreatedatasource) | ||||
| * [获取连接对象](#获取连接对象) | * [获取连接对象](#获取连接对象) | ||||
| @@ -247,15 +248,28 @@ maxIdle=8 | |||||
| #注意:需要开启空闲对象回收器,这个参数才能生效。 | #注意:需要开启空闲对象回收器,这个参数才能生效。 | ||||
| #默认为0 | #默认为0 | ||||
| minIdle=0 | minIdle=0 | ||||
| ``` | |||||
| ## 连接存活参数 | |||||
| ```properties | |||||
| #最大等待时间 | #最大等待时间 | ||||
| #当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),超过时间则抛出异常,如果设置为<=0表示无限等待 | #当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),超过时间则抛出异常,如果设置为<=0表示无限等待 | ||||
| #默认-1 | #默认-1 | ||||
| maxWaitMillis=-1 | maxWaitMillis=-1 | ||||
| #资源池中资源最小空闲时间(单位为毫秒),达到此值后将被移除。 | |||||
| #默认值1000*60*30 = 30分钟 | |||||
| minEvictableIdleTimeMillis=1800000 | |||||
| #资源池中资源最小空闲时间(单位为毫秒),达到此值后将被移除。但是会保证minIdle | |||||
| #默认值-1 | |||||
| #softMinEvictableIdleTimeMillis=-1 | |||||
| #连接最大存活时间。非正数表示不限制 | |||||
| #默认-1 | |||||
| maxConnLifetimeMillis=-1 | |||||
| ``` | ``` | ||||
| ## 连接检查参数 | ## 连接检查参数 | ||||
| 针对连接失效和连接泄露的问题,建议开启空闲资源回收器。 | 针对连接失效和连接泄露的问题,建议开启空闲资源回收器。 | ||||
| ```properties | ```properties | ||||
| @@ -288,27 +302,10 @@ timeBetweenEvictionRunsMillis=-1 | |||||
| #默认3,单位毫秒。如果设置为-1,就是对所有连接做空闲监测。 | #默认3,单位毫秒。如果设置为-1,就是对所有连接做空闲监测。 | ||||
| numTestsPerEvictionRun=3 | numTestsPerEvictionRun=3 | ||||
| #资源池中资源最小空闲时间(单位为毫秒),达到此值后将被移除。 | |||||
| #默认值1000*60*30 = 30分钟 | |||||
| minEvictableIdleTimeMillis=1800000 | |||||
| #资源池中资源最小空闲时间(单位为毫秒),达到此值后将被移除。但是会保证minIdle | |||||
| #默认值-1 | |||||
| #softMinEvictableIdleTimeMillis=-1 | |||||
| #空闲对象回收器的回收策略 | #空闲对象回收器的回收策略 | ||||
| #默认org.apache.commons.pool2.impl.DefaultEvictionPolicy | #默认org.apache.commons.pool2.impl.DefaultEvictionPolicy | ||||
| #如果要自定义的话,需要实现EvictionPolicy重写evict方法 | #如果要自定义的话,需要实现EvictionPolicy重写evict方法 | ||||
| evictionPolicyClassName=org.apache.commons.pool2.impl.DefaultEvictionPolicy | evictionPolicyClassName=org.apache.commons.pool2.impl.DefaultEvictionPolicy | ||||
| #连接最大存活时间。非正数表示不限制 | |||||
| #默认-1 | |||||
| maxConnLifetimeMillis=-1 | |||||
| #当达到maxConnLifetimeMillis被关闭时,是否打印相关消息 | |||||
| #默认true | |||||
| #注意:maxConnLifetimeMillis设置为正数时,这个参数才有效 | |||||
| logExpiredConnections=true | |||||
| ``` | ``` | ||||
| ## 缓存语句 | ## 缓存语句 | ||||
| @@ -401,7 +398,11 @@ abandonedUsageTracking=false | |||||
| 这部分参数比较少用。 | 这部分参数比较少用。 | ||||
| ```properties | ```properties | ||||
| #-------------其他-------------------------------- | |||||
| #当达到maxConnLifetimeMillis被关闭时,是否打印相关消息 | |||||
| #默认true | |||||
| #注意:maxConnLifetimeMillis设置为正数时,这个参数才有效 | |||||
| logExpiredConnections=true | |||||
| #是否使用快速失败机制 | #是否使用快速失败机制 | ||||
| #默认为空,由驱动决定 | #默认为空,由驱动决定 | ||||
| fastFailValidation=false | fastFailValidation=false | ||||
| @@ -447,7 +448,7 @@ accessToUnderlyingConnectionAllowed=false | |||||
| 注意:考虑篇幅和可读性,以下代码经过删减,仅保留所需部分。 | 注意:考虑篇幅和可读性,以下代码经过删减,仅保留所需部分。 | ||||
| ## 数据源创建 | |||||
| ## 创建数据源 | |||||
| 研究数据源创建之前,先来看下`DBCP`的几种数据源: | 研究数据源创建之前,先来看下`DBCP`的几种数据源: | ||||
| 类名|描述 | 类名|描述 | ||||