DruidDataSource配置属性列表
自己在Spring连接数据库中出现了构造DruidDataSource属性配置的混淆,导致出现了 java.sql.SQLException: Access denied for user ‘’@‘localhost’ (using password: YES)异常。
所以将DruidDataSource中的一些自认为比较常用的属性列举出来,方便更好的掌握DruidDataSource的使用
DruidDataSource配置兼容DBCP,一部分配置的语意有所区别。
属性配置 | 缺省值 | 说明 |
---|---|---|
name | ||
url | 连接数据库的url,不同数据库不一样 | |
username | 连接数据库的密码 | |
driverClassName | 根据url自动识别 | 这一项可配可不配,如果不配置druid会根据url自动识别dbType,然后选择相应的driverClassName |
maxActive | 8 | 最大连接池数量 |
initialSize | 0 | 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时 |
minIdle | 最小连接池数量 | |
maxWait | 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。 | |
poolPreparedStatements | false | 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。 |
validationQuery | 用来检测连接是否有效的sql,要求是一个查询语句,常用select ‘x’。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。 | |
validationQueryTimeout | 单位:秒,检测连接是否有效的超时时间。底层调用jdbc Statement对象的void setQueryTimeout(int seconds)方法 | |
exceptionSorter | 根据dbType自动识别 | 当数据库抛出一些不可恢复的异常时,抛弃连接 |
connectionInitSqls | 根 | 物理连接初始化的时候执行的sql |
keepAlive | false(1.0.28) | 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作。 |