工作中,遇到了应用程序需要数据库连接池.这无疑是对程序性能的一个挑战.为什么使用数据库连接池呢?因为每次新建个连接,非常耗费资源.本人在自己的笔记本上做实验的结果如下:
每秒中,可以向MySQL中插入纪录4000条.而创建一个连接则需要200毫秒左右的时间.使用了连接池技术以后,创建连接几乎不用任何时间,用System.currentTimeMillis()打印时间差,为0毫秒.可见在大量并发访问的情况下,系统的性能通过连接池得到了飞跃.
因此搜索了好多开源框架,找到了DBCP.Tomcat的数据源技术,也是基于DBCP实现的.DBCP数据库连接池使用的方式很多,动态设置,配制文件(xml,properties).下面是示例代码.以及相关的驱动包我也给出来了.有兴趣的朋友们可以去试验一下.^-^
数据库连接字符串例子
String url="jdbc:sqlserver://localhost:1433;database=数据库名;user=用户名;password=密码";
其中,connection有多个构造方法,可以根据自己的需要调整连接字符串是否有用户名和密码.
commons项目地址:http://commons.apache.org/
import java.sql.SQLException;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
public class TestDBCP {
public static void main(String[] args) throws SQLException {
BasicDataSource ds = new BasicDataSource();
// 基本参数
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUsername("root");
ds.setPassword("147258369");
ds.setUrl("jdbc:mysql://192.168.0.34:3306/cold");
// 池属性
ds.setInitialSize(5);// 初始化连接池时,创建连接个数
ds.setMinIdle(10);// 最小空闲连接数
ds.setMaxIdle(100);// 最大空闲连接数
ds.setMaxActive(100);// 连接池最大并发容量
// 可选测试参数,数据连接检测使用,网上常说的BUG,就是因为没设置下面属性引起的CONNECTION失效.
ds.setValidationQuery("select 1");
ds.setTestOnBorrow(true);
ds.setTestOnReturn(true);
ds.setTestWhileIdle(true);
// 大于0 ,进行连接空闲时间判断,或为0,对空闲的连接不进行验证
ds.setMinEvictableIdleTimeMillis(1 * 60 * 1000);
// 失效检查线程运行时间间隔,如果小于等于0,不会启动检查线程
ds.setTimeBetweenEvictionRunsMillis(5 * 60 * 1000);
DataSource ds2 = (DataSource) ds;
System.out.println(ds2.getConnection());
}
}
注意:
timeBetweenEvictionRunsMillis 和 minEvictableIdleTimeMillis,他们两个配合,可以持续更新连接池中的连接对象,当 timeBetweenEvictionRunsMillis 大于0时,每过timeBetweenEvictionRunsMillis 时间,就会启动一个线程,校验连接池中闲置时间超过minEvictableIdleTimeMillis的连接对象。
参考
commons-dbcp源码研究
http://macrochen.iteye.com/blog/320077
分享到:
相关推荐
Apache Commons DBCP是Apache Commons项目的一部分,它提供了一个基于Apache Commons Pool的数据库连接池实现。数据库连接池是一种管理数据库连接的技术,通过复用已建立的数据库连接,减少创建和销毁连接的开销,...
Apache Commons DBCP是一个开源的Java库,用于管理数据库连接池。这个标题表明我们将讨论关于DBCP的连接池服务,以及它在Java应用程序中的作用。 **描述详解:** "DBCP(DataBase Connection Pool)数据库连接池,...
标题中的"commons-pool-1.3.jar"和"commons-dbcp-1.2.2.jar"是两个在Java开发中常用的开源库,主要用于数据库连接池管理。它们都是Apache Commons项目的一部分,旨在提高数据库访问效率,减少数据库资源的消耗。 ...
DBCP的工作原理是,程序首先会初始化相应的数据库连接池,以供程序访问,当某个操作需要访问数据库时,程序会首先在连接池中取得空闲连接,如没有空闲连接在创建,用完之后归还连接池,这样达到了连接的重利用,不用...
3. `commons-pool-1.6.jar`:Apache Commons Pool是通用的对象池服务,它是DBCP连接池依赖的基础。DBCP利用了Pool库来实现对象(这里是数据库连接)的池化管理,包括创建、分配、回收和销毁连接等操作。 使用DBCP...
在Java开发中,数据库连接管理是一项关键任务,而Apache Commons DBCP(Database Connection Pool)是广泛使用的数据库连接池实现之一。本主题将详细解析标题和描述中提及的三个核心库:`commons-dbcp-1.2.1.jar`、`...
《深入理解Apache Commons DBCP:数据库连接池的基石》 Apache Commons DBCP(Database Connection Pool)是Java世界中广泛使用的数据库连接池组件,它为应用程序提供了高效的数据库连接管理。在Java应用开发中,...
Apache Commons DBCP2是Apache软件基金会开发的一个数据库连接池组件,版本号为2.7.0。这个组件主要用于管理数据库连接,提高数据库操作的效率和性能,是Java应用程序中的重要工具。在Java环境中,频繁地打开和关闭...
标题"commons中的DBCP连接池jar"指的是Apache Commons DBCP的Java归档文件(JAR),它是Java应用程序可执行的二进制格式。这些JAR文件包括: 1. `commons-dbcp-1.4-javadoc.jar`:这个文件包含了DBCP 1.4版本的API...
"spring开发的必备jar包"表明了在Spring框架的环境中,commons-dbcp扮演着重要角色,它提供了数据库连接池的功能,能够有效地管理和复用数据库连接,从而提高应用性能。 **Apache Commons DBCP介绍** Apache ...
dbcp所需jar包,DBCP 数据库连接池所需jar包里面有commons-dbcp-1.4.jar、commons-pool-1.5.6.jar.rar 1、首先在项目下创建一个文件夹,保存我们的jar包。在项目名上右击,依次点击【New】-->【Floder】,打开...
Apache Commons DBCP2是Apache软件基金会开发的一个开源数据库连接池组件,它的全名是"Database Connection Pool 2"。这个版本是2.2.0,包含在名为"commons-dbcp2-2.2.0-bin.zip"的压缩包文件中。DBCP2是一个为Java...
Apache Commons DBCP 1.4 和 Apache Commons Pool 1.6 是两个在Java应用程序中广泛使用的开源库,主要用于数据库连接池的管理。这两个库在处理大量并发数据库访问时能够提高性能并优化资源利用。 Apache Commons ...
Apache Commons DBCP(Database Connection Pool)是Apache开源组织提供的一个数据库连接池实现。它允许开发者在应用中高效地管理和重用数据库连接,从而提高系统性能并降低资源消耗。DBCP 1.4是这个库的一个稳定...
DBCP是一个基于连接池的数据库连接管理库,它依赖于`commons-pool.jar`和`commons-dbcp.jar`(包含了基本的数据库连接管理功能)。DBCP为应用程序提供了数据库连接的复用,减少了创建和关闭数据库连接的次数,从而...
Apache Commons DBCP,全称为"Database Connection Pool",是Apache软件基金会开发的一个开源项目,主要功能是提供数据库连接池的实现。这个组件是Java应用程序中管理数据库连接的有效工具,可以显著提高数据库操作...
Apache Commons DBCP 1.4 和 Commons Pool 1.5.6 是两个在Java开发中广泛使用的开源库,主要用于数据库连接池管理。这两个jar包是处理数据库连接管理和资源优化的关键组件,尤其在大型Web应用和服务中,它们扮演着至...
`commons-dbcp-1.2.2.jar`包含了实现DBCP连接池所需的类和接口,如BasicDataSource、PoolableConnection和PoolManager等。这些类用于初始化和配置数据库连接池,管理数据库连接的生命周期,以及处理连接的分配和释放...
这三者组合在一起,可能表示一个使用Struts 1.x作为Web框架,并且依赖Apache Commons DBCP进行数据库连接池管理,以及Apache Commons Pool进行通用对象池化的项目。然而,由于版本较旧,这些组件可能存在安全漏洞和...
2. **Apache Commons DBCP** (commons-dbcp-1.2.1.jar):这是一个数据库连接池组件。数据库连接池在多用户环境下可以有效地管理数据库连接,避免了频繁地创建和销毁连接导致的性能损耗。DBCP通过维护一个数据库连接...