常用数据库连接池 (DBCP、c3p0、Druid) 配置说明
时间: 2023-07-10 22:22:05 浏览: 53
好的,下面是常用数据库连接池的配置说明:
1. DBCP(Apache Commons DBCP)
DBCP 是 Apache 的 Jakarta 项目中的一个子项目,是一个开源的数据库连接池实现。
配置说明:
在 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
```
在 Spring 的配置文件中配置数据库连接池:
```xml
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${driverClassName}"/>
<property name="url" value="${jdbcUrl}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
<property name="initialSize" value="${initialSize}"/>
<property name="maxActive" value="${maxActive}"/>
<property name="maxIdle" value="${maxIdle}"/>
<property name="minIdle" value="${minIdle}"/>
<property name="maxWait" value="${maxWait}"/>
<property name="validationQuery" value="${validationQuery}"/>
<property name="testOnBorrow" value="${testOnBorrow}"/>
<property name="testOnReturn" value="${testOnReturn}"/>
<property name="testWhileIdle" value="${testWhileIdle}"/>
</bean>
```
其中,${} 中的内容需要根据实际情况进行替换。
2. c3p0
c3p0 是一个开源的 JDBC 数据库连接池,可以更好地管理 JDBC 连接。
配置说明:
在 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.5</version>
</dependency>
```
在 Spring 的配置文件中配置数据库连接池:
```xml
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${driverClassName}" />
<property name="jdbcUrl" value="${jdbcUrl}" />
<property name="user" value="${username}" />
<property name="password" value="${password}" />
<property name="initialPoolSize" value="${initialPoolSize}" />
<property name="minPoolSize" value="${minPoolSize}" />
<property name="maxPoolSize" value="${maxPoolSize}" />
<property name="acquireIncrement" value="${acquireIncrement}" />
<property name="acquireRetryAttempts" value="${acquireRetryAttempts}" />
<property name="acquireRetryDelay" value="${acquireRetryDelay}" />
<property name="autoCommitOnClose" value="${autoCommitOnClose}" />
<property name="checkoutTimeout" value="${checkoutTimeout}" />
<property name="idleConnectionTestPeriod" value="${idleConnectionTestPeriod}" />
<property name="maxIdleTime" value="${maxIdleTime}" />
<property name="maxStatements" value="${maxStatements}" />
<property name="numHelperThreads" value="${numHelperThreads}" />
<property name="preferredTestQuery" value="${preferredTestQuery}" />
<property name="testConnectionOnCheckin" value="${testConnectionOnCheckin}" />
<property name="testConnectionOnCheckout" value="${testConnectionOnCheckout}" />
<property name="unreturnedConnectionTimeout" value="${unreturnedConnectionTimeout}" />
<property name="debugUnreturnedConnectionStackTraces" value="${debugUnreturnedConnectionStackTraces}" />
</bean>
```
其中,${} 中的内容需要根据实际情况进行替换。
3. Druid
Druid 是一个高效的数据库连接池,由阿里巴巴开发并开源。
配置说明:
在 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.6</version>
</dependency>
```
在 Spring 的配置文件中配置数据库连接池:
```xml
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${driverClassName}" />
<property name="url" value="${jdbcUrl}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<property name="initialSize" value="${initialSize}" />
<property name="maxActive" value="${maxActive}" />
<property name="minIdle" value="${minIdle}" />
<property name="maxWait" value="${maxWait}" />
<property name="poolPreparedStatements" value="${poolPreparedStatements}" />
<property name="maxPoolPreparedStatementPerConnectionSize" value="${maxPoolPreparedStatementPerConnectionSize}" />
<property name="validationQuery" value="${validationQuery}" />
<property name="testOnBorrow" value="${testOnBorrow}" />
<property name="testOnReturn" value="${testOnReturn}" />
<property name="testWhileIdle" value="${testWhileIdle}" />
<property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />
<property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" />
<property name="filters" value="${filters}" />
</bean>
```
其中,${} 中的内容需要根据实际情况进行替换。同时,Druid 还提供了很多其他的配置项,可以根据需要进行配置。