数据源连接池配置参数(连接池类的属性)
注意:不同版本的连接池参数名会不一样,url/driverClass经常会出现不同的名称如jdbcUrl/driver/driverClassName等。要打开源码看一样当前版本的属性
HikariCP查看com.zaxxer.hikari.HikariDataSource
Druid查看com.alibaba.druid.pool.DruidDataSource
(这里的类和包也有可能换)
如果补齐提示与实际不一致,如提示url实际是需要jdbc-url,可能通过DataSourceKeyMap.reg(new String[]{"url","jdbcUrl"})将多个属性关联,这样进进无论写哪一个都可以正常解析
Spring默认连接池HikariCP
参数名
默认值
描述
jdbcUrl
null
数据库连接URL。
username
null
连接数据库的用户名。
password
null
连接数据库的密码。
driverClassName
null
JDBC驱动类名。
connectionTimeout
30000(ms)
获取连接超时时间,默认30秒。
idleTimeout
600000(ms)
连接空闲超时时间,默认10分钟。
maxLifetime
1800000(ms)
最大生命周期,默认30分钟。
connectionTestQuery
null
测试连接是否可用的查询语句,如果设置了该参数,则每次从连接池中获取连接时都会执行该查询语句,以确保连接可用性。
minimumIdle
10
最小空闲连接数,默认10个。
maximumPoolSize
10
最大连接数,默认10个。
poolName
HikariPool-1
池名称,用于日志记录和调试。
readOnly
false
是否将数据库访问标记为只读模式,以便在某些情况下能够更好地优化性能(如MySQL)。
maxLifetime
auto(30m)
>池中每个连接的最长生命周期。当达到此限制时,连接将被关闭,如果池中有更少的空闲连接,则将创建新连接以替换该连接。可选值为“auto”(使用默认值)或指定时间间隔(例如“300000”表示5分钟)
connectionTestTimeout
5000
测试连接是否可用的超时时间,默认5秒钟。
idleTimeout
600000
连接空闲超时时间,默认10分钟。
maxLifetime
1800000
最大生命周期,默认30分钟。
minIdle
10
最小空闲连接数,默认10个。
maxPoolSize
10
最大连接数,默认10个。
poolName
HikariPool-1
池名称,用于日志记录和调试。
transactionIsolation
null
数据库事务隔离级别,可以是字符串形式(如"TRANSACTION_READ_COMMITTED")或整数形式(如2)。如果未设置,则使用JDBC驱动程序提供的默认值。
Druid连接池的参数及其默认值:
参数名 | 默认值 | 描述 |
---|---|---|
url | null | 数据库连接URL。 |
username | null | 连接数据库的用户名。 |
password | null | 连接数据库的密码。 |
driverClassName | null | JDBC驱动类名。 |
initialSize | 0 | 初始化时创建的连接数,默认为0。 |
maxActive | 8 | 最大活跃连接数,默认为8个。 |
minIdle | 0 | 最小空闲连接数,默认为0个。 |
maxWait | -1 | 获取连接时最大等待时间,单位毫秒,默认无限制(-1)。 |
maxWaitMillis | -1 | 获取连接时最大等待时间,单位毫秒,默认无限制(-1)。 |
maxPoolPreparedStatementPerConnectionSize | -1 | 每个物理连接中缓存PreparedStatement对象的最大数目,默认-1表示不限制。当应用程序同时使用大量预处理语句时,建议将该属性设置为较大的值以提高性能。 |
poolPreparedStatements | false | 是否缓存PreparedStatement,即PSCache。 |
poolPreparedStatementsNumPerConnection | 10 | PSCache的全局数量限制。当poolPreparedStatements为true时生效。 |
timeBetweenEvictionRunsMillis | 60000 | 定时检查连接池中空闲连接的间隔时间,单位毫秒,默认1分钟。 |
minEvictableIdleTimeMillis | 300000 | 连接在池中保持空闲而不被使用的最小时间,超过此时间将被移除,单位毫秒,默认5分钟。 |
testWhileIdle | false | 是否在空闲时检查连接有效性,默认false。 |
testOnBorrow | true | 是否在获取连接时检查连接有效性,默认true。 |
testOnReturn | false | 是否在归还连接时检查连接有效性,默认false。 |
validationQuery | null | 测试连接是否可用的查询语句,如果设置了该参数,则每次从连接池中获取连接时都会执行该查询语句,以确保连接可用性。 |