BasicDataSource
/**
* Creates a JDBC connection factory for this datasource. This method only
* exists so subclasses can replace the implementation class.
*/
protected ConnectionFactory createConnectionFactory() throws SQLException {
。。。。。。。。。。。。
。。。。。。。。。。。。
if (validationQuery == null) {//测试的sql语句
setTestOnBorrow(false);
setTestOnReturn(false);
setTestWhileIdle(false);
}
。。。。。。。。。。。。
。。。。。。。。。。。。
}
protected void createConnectionPool() {
// Create an object pool to contain our active connections
GenericObjectPool gop;
//abandonedConfig.setRemoveAbandoned(removeAbandoned); 是否清理为关闭的活动连接
//abandonedConfig.setRemoveAbandonedTimeout(removeAbandonedTimeout); 多长时间未使用为超时时间
//abandonedConfig.setLogAbandoned(logAbandoned); 连接池收回空闲的活动连接时是否打印消息
if ((abandonedConfig != null) && (abandonedConfig.getRemoveAbandoned())) {
gop = new AbandonedObjectPool(null,abandonedConfig);
}
else {
gop = new GenericObjectPool();
}
gop.setMaxActive(maxActive);//连接池支持的最大连接数
gop.setMaxIdle(maxIdle);//最多空闲多少
gop.setMinIdle(minIdle);//最少空闲多少
gop.setMaxWait(maxWait);//连接池中连接用完时,新的请求等待时间,毫秒
gop.setTestOnBorrow(testOnBorrow);//获取连接时是否测试一下
gop.setTestOnReturn(testOnReturn);//归还连接时是否测试一下
gop.setTestWhileIdle(testWhileIdle);//是否检测空闲池
gop.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);//空闲池清理线程休眠时间
gop.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);//空闲池中连接超时时间
gop.setNumTestsPerEvictionRun(numTestsPerEvictionRun);//空闲池清理线程时每次test几次
connectionPool = gop;
}
需要注意的是removeAbandoned的配置不同最后建立的连接池是不一样的。
分享到:
相关推荐
在上述描述中,我们看到如何配置和使用DBCP连接池的步骤。首先,通过XML配置文件来定义各个数据库连接池的信息,例如`config.xml`。在这个文件中,每个`<pool>`元素代表一个连接池,包含以下关键配置: 1. `<name>`...
本文将对比分析三个常见的开源数据连接池:C3P0、DBCP 和 Proxool,并深入探讨它们的主要参数和使用场景。 1. C3P0 Hibernate 开发团队推荐使用 C3P0 连接池。C3P0 是一个开源的 JDBC 连接池,它提供了强大的异常...
使用DBCP数据库连接池不仅可以减少频繁创建和销毁数据库连接所带来的开销,还可以更灵活地根据应用程序的需求动态调整连接池的大小,从而提高系统整体性能。此外,通过配置文件来管理数据库连接参数也使得维护更加...
1. **分析配置**:首先查看配置文件,理解各个参数的含义和作用,如初始化连接数、最大连接数等。 2. **解析驱动**:研究代码如何加载Oracle驱动,以及如何设置相关的JDBC属性。 3. **理解连接获取和释放**:关注...
"说明文件.txt"应该包含了具体的配置指南,包括如何编写DBOption.properties文件,各个参数的具体含义和推荐值。例如,`maxActive`表示最大活动连接数,`minIdle`表示最小空闲连接数,`initialSize`表示初始化时创建...
配置DBCP需要了解一些核心参数,这些参数可以帮助开发者根据不同的应用场景调整连接池的行为,从而获得最佳的性能和资源利用效率。 在配置DBCP之前,首先需要在项目中引入DBCP的依赖。根据提供的内容,我们可以看到...
Tomacatt7.0配置连接池的实例,配置DBCP连接池:在Tomcat的安装目录下的conf\Catalina\localhost的目录下,可以配置Tomcat中的各个应用项目库的参数,新建一个和当前应用项目同名的XML文件,如:jsptest.xml
**Druid数据库连接池详细属性配置** Druid是阿里巴巴开源的一款高效、强大的数据库连接池组件,它在性能、监控和扩展性方面表现出色。Druid不仅是一个连接池,还包含了SQL解析器、日志监控、SQL执行效率分析等功能...
数据库连接池的基本原理是预先创建一定数量的数据库连接,将这些连接保存在一个“池”中,当应用程序需要访问数据库时,不是每次都去创建新的连接,而是从连接池中获取一个已经存在的连接。使用完毕后,应用程序不会...
在Java开发环境中,数据库连接是实现数据持久化和交互的关键环节。为了提高应用程序的性能、减少资源消耗,连接池...通过细致地调整各个参数,并结合具体的应用场景,可以充分发挥连接池的优势,提升系统的整体表现。
1. 配置文件:如struts-config.xml用于配置Struts框架的各个组件,以及数据源的配置,可能在web.xml中配置数据连接池的相关参数。 2. Action类:处理业务逻辑,通过数据连接池获取数据库连接,执行SQL,然后将结果...
在配置连接池时,可以在这个文件中定义数据源(DataSource)的配置,例如使用Apache DBCP或C3P0等连接池实现。这通常涉及 `<resource-ref>` 和 `<context-param>` 标签,指定连接池的类型、数据库URL、用户名、密码...
DBCP2(BasicDataSource)是Apache Commons的一个数据库连接池组件。数据库连接池在多用户环境下能够有效地管理数据库连接,避免频繁创建和销毁连接带来的性能开销。DBCP2提供了故障检测、连接验证等功能,提高了...
- **DBCP (Apache Commons DBCP)**:Apache的一个项目,基于Jakarta Pool,提供基本的连接池功能。 - **HikariCP**:高性能的连接池,以其速度和稳定性著称。 - **Druid**:阿里巴巴开源的数据库连接池,集成了...
2. **配置文件**:如数据库连接配置文件,可能包含了连接池的配置参数,如C3P0或DBCP等连接池的配置信息。 3. **资源文件**:如HTML、CSS和JavaScript文件,用于构建用户界面。 4. **数据库脚本**:创建论坛所需的...
使用连接池,开发者需要在应用启动时配置连接池参数,然后通过连接池提供的DataSource对象获取Connection,操作完毕后归还连接,而不是直接关闭。 JDBCTemplate是Spring框架中的一个组件,它封装了JDBC的常用操作,...
- **与其他连接池的比较**:Druid与HikariCP、C3P0、DBCP等其他连接池相比,通常在性能、功能和易用性上有其独特优势。 通过深入学习和实践"druid-master"中的内容,开发者可以全面掌握Druid的使用,提升项目中...
- 常用连接池:介绍Apache DBCP、C3P0、HikariCP等常见的JDBC连接池实现。 8. **第八讲:JDBC高级特性** - ResultSet的滚动和分页:学习如何在ResultSet中进行向前滚动和分页操作。 - 自动关闭资源:使用try-...
通过本文档的学习,不仅可以深入了解JDBC的基本概念和技术细节,还能够掌握一些高级用法和最佳实践,例如数据库连接池的使用、DAO设计模式的应用等。这将有助于开发者更好地理解和使用JDBC,从而提高开发效率和软件...