参考资料
Druid介绍
Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了其他数据库连接池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池,据说是目前最好的连接池。
Maven依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid_version}</version>
</dependency>
配置参数
| 配置 | 参数说明 |
|---|---|
| name | 如果存在多个数据源,监控的时候可以通过名字来区分开来。 |
| jdbcUrl | 连接数据库的url。 |
| username | 连接数据库的用户名。 |
| password | 连接数据库的密码。 |
| driverClassName | 数据库驱动类名字 |
| initialSize | 初始化时建立物理连接的个数。 |
| maxActive | 最大连接池数量,默认8。 |
| maxIdle | 最大连接空闲数。超过该数,连接就会被回收(已不可用)。 |
| minIdle | 最小连接空闲数量。 |
| maxWait | 获取连接时最大等待时间,单位毫秒。 |
| validationQuery | 用来检测连接是否有效的sql,要求是一个查询语句。 |
| testOnBorrow | 申请连接时执行validationQuery检测连接是否有效,会降低性能。 |
| testOnReturn | 归还连接时执行validationQuery检测连接是否有效,会降低性能。 |
| testWhileIdle | 建议配置为true,申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 |
| timeBetweenEvictionRunsMillis | 多久才进行一次检测,检测需要关闭的空闲连接,单位毫秒。 |
| minEvictableIdleTimeMillis | 一个连接在池中最小生存的时间,单位是毫秒。 |
| filters | 监控统计filters:stat,日志filters:log4j,防御sql注入filters:wall。 |