首页 数据库连接池配置
文章
取消

数据库连接池配置

日常开发中,我们时常会用到数据库连接池进行管理数据库连接。

数据库连接池的配置主要有两大块配置构成:

  1. 数据库连接池的配置,控制连接池的行为,例如最大最小连接数,获取链接的超时时间等
  2. 数据库连接的配置,控制每条数据库连接的行为,例如soTimeout读取数据等待时间

一. 数据库连接池配置

具体配置可以在连接池的官网进行查询:

二. 数据库连接配置

设置数据库连接属性,主要是设置java.sql.datasource的属性,主要有以下的方式:

  1. 如果是直接通过数据库驱动生成datasource的,jdbc规范的api便可以传入.java.sql.Driver.getConnection(url, properties)
  2. 如果jdbcurl支持的话可以通过jdbcurl进行设置
  3. 通过数据库连接池预留的api设置datasource的属性

2.1 通过数据库连接池设置数据库连接属性

  • c3p0

    ComboPooledDataSource.setProperties(Properties properties)

  • hikaricp

2.2 通过jdbc规范api进行设置

1
2
Connection conn = java.sql.DriverManager.getConnection(String url, java.util.Properties info);
Connection conn = java.sql.Driver.connect(String url, java.util.Properties info) throws SQLException;

2.3 通过数据库url设置

JDBC DriverconnTimeoutsocketTimeouturl格式示例
mysqlconnectTimeout(默认值:0,单位:ms)socketTimeout(默认值:0,单位:ms)jdbc:mysql://[host:port],[host:port]…/[database][?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]…jdbc:mysql://xxx.xx.xxx.xxx:3306/database?connectTimeout=60000&socketTimeout=60000
oracleoracle.net.CONNECT_TIMEOUT (默认值:0,单位:ms)oracle.jdbc.ReadTimeout(默认值:0,单位:ms)不支持通过url配置,只能通过OracleDatasource.setConnectionProperties() API设置,
使用DBCP时可以调用BasicDatasource.setConnectionProperties()
或BasicDatasource.addConnectionProperties()进行设置
 

参考:

本文由作者按照 CC BY 4.0 进行授权

数据库并发的安全控制

XXL-JOB定时任务生成策略解析