dbcp官网:http://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi
文档:http://commons.apache.org/proper/commons-dbcp/configuration.html
BasicDataSource Configuration 配置参数
Parameter
Descripton
username |
用来建立jdbc连接的用户名 |
password |
用来建立jdbc连接的密码 |
url |
建立连接的url |
driverClassName |
jdbc driver className |
connectionProperties |
连接使用的properties.使用的格式必须是[propertyName=property;]* |
properties配置:
Parameter
default
Description
defaultAutoCommit |
driver default |
这个连接池默认的自动提交状态.如果没有设置,setAutoCommit方法不会被调用 |
defaultReadOnly |
driver default |
这个连接池默认的读写状态。如果没有设置,setReadOnly方法就不会调用(一些数据库不支持readOnly模式,比如informix) |
defaultTransactionIsolation |
driver default |
默认的隔离级别.必须是其中一个(NONE,READ_COMMITTED,READ_UNCOMMITTED,REPEATABLE_READ,SERIALIZABLE) |
defaultCatalog |
|
连接池默认创建的连接数 |
cacheState |
true |
如果是true, 连接池将会缓存readOnly和auto Commit配置,在第一次进行读或者写的时候.这会减少以后的数据库查询.如果获取连接后,这个连接自己设置readOnly和自动提交设置,这些配置不会影响到当前中的配置。在这种情况下,如果我们想要这种设置生效,caching应该把这个设置成disable. |
defaultQueryTimeout |
null |
如果不是null,这个Integer的value将会用来衡量timeout,从连接创建时就开始计算。null意味着driver default将会被使用. |
enableAutocommitOnReturn |
true |
如果是true,连接如果返回到池的时候,将会检查是否被设置成了autoAutoCommit为false,那么就会调用Connection.setAutoCommit(true)
|
roolbackOnReturn |
true |
True意味着如果设置了autoCommit为false和readonly胃false的时候,当回到连接池的时候就回滚 |
Parameter
Default
Description
initialSize |
0 |
连接池创建的时候,建立的连接数.从1.2起 |
maxTotal |
8 |
一个时间最大的活跃连接数,负数代表没有上限 |
maxIdle |
8 |
最大的idle保持数,其他的将会释放,负数代表没有上限 |
minIdle |
0 |
最小的idle保持数,其他的将会被创建,0代表不保持 |
maxWaitMillis |
indefinitely |
获取连接最大等待时间,-1代表一直等 |
Parameter
Default
Description
validationQuery |
|
在返回连接前,是否进行验证。如果使用,必须使用一个SQL SELECT返回至少一行.如果没有配置,连接调用isValid()方法. |
validationQueryTimeout |
no timeout |
连接验证超时的秒数,如果设置为正数,将会用来验证连接的sql执行 |
testOnCreate |
false |
在连接创建时,是否进行验证。如果验证失败,从连接池获取就会失败. |
testOnBorrow |
true |
在从池中借连接的时候是否验证。如果验证失败,就会放弃这个连接,试图获取另外一个. |
testOnReturn |
true |
在返回连接给连接池的时候,是否进行验证. |
testWhileIdle |
false |
空闲连接是否进行验证,如果失败,就会从连接池去除. |
timeBetweenEvictionRunsMillis |
-1 |
空闲连接验证执行的时间间隔,负数将会代表不会执行 |
numTestsPerEvictionRun |
3 |
执行空闲连接验证的线程数. |
minEvictableIdleTimeMillis |
1000 * 60 * 30 |
空闲保持时间,在这时间之后再进行空闲验证 |
softMinEvictableIdleTimeMillis |
-1 |
这个是空闲保持时间的软限制,如果设置最小空闲保持时间(这时候不考虑需要保持空闲连接数),则先和最小空闲保持时间对比,再和这个参数比。 |
maxConnLifetimeMillis |
-1 |
连接最大的生命时间。如果超过了这个时间,那么在下次活跃,不活跃或者验证测试的时候就会失败。0或者小于0代表连接没有生命上限 |
logExpiredConnections |
true |
是否记录超时的连接数 |
connectionInitSqls |
null |
建立连接的时候调用的sql,只有在connection fatory创建的时候调用 |
lifo |
true |
这个一个队列模式lifo(last in first out)。如果设置为false,则为FIFO |
Parameter
Default
Description
accessToUnderlyingConnectionAllowed |
false |
是否可以PoolGuard可以获取底层连接 |
removeAbandonedOnMaintenance removeAbandonedOnBorrow |
false |
这个是用来保证应用程序关闭连接失败的情况。在超时不使用并且超过抛弃时间后就会被抛弃掉。条件超时,还有其他条件:getNumActive() > getMaxTotal() - 3; and getNumIdle() < 2 |
removeAbandonedTimeout |
300 |
抛弃的时间 |
logAbandoned |
false |
是否记录abandoned的日志 |
abandonedUsageTracking |
false |
是否记录trace,debug的时候比较有用 |
fastFailValidation |
false |
这个设置为true的时候,validation快速失败当connection抛出fatal SqlException的时候。当对一个已经关闭的连接发出isValid方法和一个合法query的时候,就会快速失败.SQL_STATE默认是:(57P01 (ADMIN SHUTDOWN) 57P02 (CRASH SHUTDOWN) 57P03 (CANNOT CONNECT NOW) 01002 (SQL92 disconnect error) JZ0C0 (Sybase disconnect error) JZ0C1 (Sybase disconnect error) Any SQL_STATE code that starts with “08”) 可以通过设置disconnectionSqlCodes属性进行override |
disconnectionSqlCodes |
null |
配合fastValidation使用,用来设置需要包括的sql_state |
分享到:
相关推荐
**配置DBCP数据源步骤** 1. **添加依赖**:要使用DBCP,首先需要在项目的类路径下包含两个关键的jar包,即`commons-dbcp-1.4.jar`和`commons-pool-1.6.jar`。这两个jar包提供了DBCP所需的全部功能。 2. **配置...
2. **配置数据源**:在Spring的配置文件(如`applicationContext.xml`)中,定义一个名为`dataSource`的bean,使用DBCP的数据源实现。例如: ```xml <bean id="dataSource" class="org.apache.commons.dbcp....
例如,在Spring的XML配置文件中,你可以这样配置DBCP数据源: ```xml <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> ``` 然后,你可以在其他...
在使用DBCP时,正确配置数据源类是非常关键的,这直接影响到数据库连接的效率和系统的稳定性。 在DBCP的数据源配置中,有几个重要的参数需要理解: 1. **removeAbandoned**: 当设置为`true`时,DBCP会监控并回收...
在本配置中,我们将探讨如何将Spring MVC与Apache DBCP数据源和JdbcTemplate结合使用,以实现高效、安全的数据库操作。 Apache DBCP(Database Connection Pool)是一个连接池组件,它允许应用在多个用户之间共享...
综上所述,DBCP数据源是Java应用程序中管理和复用数据库连接的有效工具,它的正确配置和使用对于提升应用性能至关重要。同时,了解并比较其他连接池方案,可以帮助选择最适合特定项目需求的解决方案。
2. **配置Context**:在Tomcat的`conf/server.xml`文件中,或者在项目的`META-INF/context.xml`中,创建一个`<Resource>`标签来定义数据源。例如: ```xml type="org.apache.commons.dbcp.BasicDataSource" ...
总的来说,DBCP数据源的实现为Java应用提供了一种高效、可配置的数据库连接管理方案,降低了数据库操作的资源消耗,提高了系统性能。在实际应用中,根据项目的规模和性能需求,合理配置和使用DBCP是非常重要的。
2. **配置参数**:在配置DBCP数据源时,需要设置一系列参数来控制连接池的行为,例如: - `driverClassName`:指定数据库驱动类名,例如"com.mysql.jdbc.Driver"对于MySQL。 - `url`:数据库连接URL,包括数据库...
DBCP的数据源类`BasicDataSource`是其核心,它实现了`javax.sql.DataSource`接口,提供了获取和管理数据库连接的方法。开发者可以通过配置`BasicDataSource`来设定连接池的大小、超时时间、验证查询等参数。例如: ...
DBCP(Jakarta Commons DBCP)数据源是Apache软件基金会的一个开源项目,它提供了一个数据库连接池服务。在Java应用程序中,特别是那些基于Servlet容器(如Tomcat)的应用,DBCP是一个常用的数据库连接管理工具。它...
### Spring 数据源配置详解 #### 一、Spring与数据源简介 在Java企业级应用开发中,数据库操作是必不可少的一部分。Spring框架作为一种流行的轻量级Java应用开发框架,提供了强大的数据库访问支持,其中包括对数据...
随着`commons-dbcp2`的版本更新,数据库连接池的配置也有了相应的调整。为了更好地理解和配置这些参数,本文将详细解析`commons-dbcp2`中的一些关键参数及其意义。 #### 1. `maxIdle` - **参数描述**:表示连接池中...
首先,DBCP数据源依赖于Apache Commons DBCP库,这是一个用于创建、配置和管理数据库连接池的Java库。在Spring中集成DBCP,你需要`commons-dbcp.jar`,它提供了数据库连接池的基本功能。这个文件通常包含了数据库...
如果可能,应考虑升级到更现代的连接池实现,或者使用DBCP的后续项目,如DBCP2。 总之,DBCP作为一款经典的数据库连接池组件,虽然在现代Java应用中可能不那么流行,但其简单性和易用性仍然使它在一些项目中占有...
- **Spring**:在Spring框架中,可以将DBCP配置在XML配置文件中,或者使用Java配置类来声明数据源。 - **iBatis**:iBatis可以通过`SqlSessionFactoryBuilder`和`DataSource`接口结合DBCP来创建`SqlSessionFactory...
### Spring MVC 中配置多数据源详解 在Spring框架中配置多数据源的需求比较常见,尤其在需要处理不同类型的数据库或需要实现数据隔离的应用场景中。本文将详细介绍如何在Spring MVC项目中配置并使用多数据源。 ###...
DBCP(BasicDataSource)是Apache Commons DBCP项目提供的一种数据源实现,它是一个开源的Java连接池组件,常用于管理数据库连接。在Java应用程序中,尤其是在基于Servlet和JSP的Web应用中,DBCP数据源是常用的...
以上代码示例展示了如何配置一个连接MySQL数据库的DBCP2数据源。当然,实际使用时还需要根据你的数据库类型和配置调整相应的参数。 在分布式环境中,配合应用服务器如Tomcat或Jetty,DBCP2可以提供高效的数据库连接...