jdbc.driverClassName:数据库驱动名称
jdbc.url:数据库地址
下面是常用数据库的驱动和url 更多可以参考一个大神的总结:jdbc.properties 包含多种数据库驱动链接的版本
db2:com.ibm.db2.jcc.DB2Driver
url:jdbc:db2://localhost:50000/demo
mysql:com.mysql.jdbc.Driver
url:jdbc:db2:jdbc:mysql://localhost:3306/test
oracle:oracle.jdbc.driver.OracleDriver
url:jdbc:oracle:thin:@localhost:1521:orcl
jdbc.username:你的数据库用户名
jdbc.username:你的数据库密码
jdbc.initialSize:初始化连接数
jdbc.minIdle:最大空闲数(这里取值为2,表示即使没有数据库连接时依然可以保持2空闲的连接,而不被清除,随时处于待命状态。MaxWait是最大等待秒钟数,这里取值-1,表示无限等待,直到超时为止,也可取值9000,表示9秒后超时)
jdbc.maxActive:连接池的最大数据库连接数,设为0表示限制
jdbc.maxWait:超时等待,时间为毫秒
jdbc.timeBetweenEvictionRunsMillis和jdbc.minEvictableIdleTimeMillis:
这两个是一起用的,表示每timeBetweenEvictionRunsMillis毫秒秒检查一次连接池中空闲的连接,
把空闲时间超过minEvictableIdleTimeMillis毫秒的连接断开,直到连接池中的连接数到minIdle为止
jdbc.validationQuery:用来验证数据库连接的查询语句 连接池中连接的测试/验证,防止数据库认为连接已死而Web应用服务器认为连接还有效的问题,此外测试/验证连接池连接的sql语句也因数据库而异,详情如下
数据库 | 测试/验证查询 |
---|---|
MySQL | SELECT 1 |
PostgreSQL | SELECT 1 |
Microsoft SQL Server | SELECT 1 |
SQLite | SELECT 1 |
H2 | SELECT 1 |
Ingres | SELECT 1 |
Oracle | select 1 from dual |
DB2 | select 1 from sysibm.sysdummy1 或 SELECT current date FROM sysibm.sysdummy1 |
Apache Derby | VALUES 1 FROM SYSIBM.SYSDUMMY1 或 SELECT 1 FROM SYSIBM.SYSDUMMY1 |
HSQLDB | SELECT 1 FROM any_existing_table WHERE 1=0 或 SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS |
Informix | select count(*) from systables |
jdbc.testWhileIdle、jdbc.testOnBorrow、jdbc.testOnReturn:
testOnBorrow和testOnReturn在生产环境一般是不开启的,主要是性能考虑。失效连接主要通过testOnBorrow保证应用都获取到健康的连接
jdbc.poolPreparedStatements,jdbc.maxPoolPreparedStatementPerConnectionSize:
本质上就是缓存游标,避免游标反复创建,虽然Oracle对完全相同的SQL可以共享执行计划,但也需要去共享池查询这个SQL的信息
jdbc.removeAbandoned:是否自动回收超时连接
jdbc.removeAbandonedTimeout:设置被遗弃的连接的超时时间(以秒为单位),即当连接一个被遗弃的时间超过设置的时间,则它会自动转换成可利用的连接。默认超时时间是300s
jdbc.logAbandoned:是否在自动回收超时连接的时候打印连接的超时错误
jdbc.filters=stat:配置监控统计拦截的filters