Java开源连接池:
Jakarta DBCP 可直接在应用程序中使用。(比较常用,集成在Tomcat和Struts中)
C3P0是Hibernate的默认数据库连接池。(常用,Hibernate)
其他的还有Proxool、DDConnectionBroker、DBPool、XAPool、Primrose、SmartPool、MiniConnectionPoolManager, BoneCP。
Java6.0自带数据库连接池,从dbcp移至到不同的包下 tomcat-dbcp.jar
The configuration properties for Tomcat's standard data source resource factory (org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory) are as follows:
driverClassName - Fully qualified Java class name of the JDBC driver to be used.
maxActive - The maximum number of active instances that can be allocated from this pool at the same time. 最大激活连接数,取值为20,表示同时最多有20个数据库连接。
maxIdle - The maximum number of connections that can sit idle in this pool at the same time.
最大的空闲连接数,这里取值为20,表示即使没有数据库连接时依然可以保持20空闲的连接,而不被清除,随时处于待命状态。
maxWait - The maximum number of milliseconds that the pool will wait (when there are no available connections) for a connection to be returned before throwing an exception.
最大等待秒钟数,这里取值-1,表示无限等待,直到超时为止,也可取值9000,表示9秒后超时
password - Database password to be passed to our JDBC driver.
url - Connection URL to be passed to our JDBC driver. (For backwards compatibility, the property driverName is also recognized.)
username - Database username to be passed to our JDBC driver.
validationQuery - SQL query that can be used by the pool to validate connections before they are returned to the application. If specified, this query MUST be an SQL SELECT
statement that returns at least one row.
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="${jdbc_url}" />
<property name="user" value="${jdbc_user}" />
<property name="password" value="${jdbc_password}" />
<property name="minPoolSize" value="5" /> <!--连接池中保留的最小连接数。-->
<property name="maxPoolSize" value="30" /> <!--连接池中保留的最大连接数。 Default: 15 -->
<property name="initialPoolSize" value="10" /> <!--初始化时获取的连接数,取值应在 minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="maxIdleTime" value="60" /> <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="acquireIncrement" value="5" /> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="maxStatements" value="0" /> <!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements属于单个
connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。如果maxStatements与 maxStatementsPerConnection均为0,则缓存被关闭。Default: 0-->
<property name="idleConnectionTestPeriod" value="60" /> <!--每60秒检查所有连接池中的空闲连接。 Default: 0 -->
<property name="acquireRetryAttempts" value="30" /> <!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
<property name="breakAfterAcquireFailure" value="true" /> <!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效保留,并在下次调用
getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试获取连接失败后该数据源将申明已断开并永久关闭。Default: false-->
<property name="testConnectionOnCheckout" value="false" /> <!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的时候都将校验其有效性。
建议使用idleConnectionTestPeriod或automaticTestTable等方法来提升连接测试的性能。Default: false -->
</bean>
关注: http://jolbox.com/ BoneCP
两者对比:
<resource-ref>--资源引用,一般声明管理资源,如数据库驱动程序、JavaMail Session、自定义类工厂等。
<resource-env-ref>--资源环境引用,在Servlet 2.4里用来简化设置不需认证信息的资源环境,一般声明与资源相关的被管理对象,如环境参数、resource-ref变量。
分享到:
相关推荐
数据库连接池是Java应用程序中非常重要的一个组件,它在提高应用性能、节省系统资源方面起着关键作用。本文将深入探讨如何使用Java手写数据库连接池,并基于maven进行项目构建。我们将分析四个核心类的功能,以及...
Java数据库连接池是Java开发中一个非常重要的技术,它主要用于管理数据库连接,提高数据库操作的效率和性能。在Java应用程序中,频繁地创建和关闭数据库连接会导致大量的系统资源浪费,而连接池则可以复用已建立的...
Java JDBC 数据库连接池技术是Java应用程序访问数据库的关键优化手段,尤其在Web应用程序中,它解决了传统JDBC连接方式存在的效率低下和资源浪费问题。Java JDBC(Java Database Connectivity)是Java语言与各种...
开源数据库连接池c3p0是一款广泛应用于Java后端开发中的数据库连接管理工具,它能够有效地管理和优化数据库连接,提高应用的性能和响应速度。c3p0的主要功能包括连接池的创建、维护以及自动回收资源,使得多个并发...
Java Apache 数据库连接池,通常指的是Apache组织下的开源项目DBCP(Database Connection Pool)或更现代的Commons DBCP2。这些连接池是Java应用程序管理数据库连接的一种高效方式,可以显著提高应用性能,减少资源...
在这个压缩包“开源数据库连接池”中,我们找到了几个主流的Java数据库连接池实现,包括c3p0、DBCP等,以及与JDBC事务控制相关的PPT资料。以下将详细介绍这些内容。 首先,c3p0是一个开源的JDBC连接池,由Miquel ...
数据库连接池在初始化时会创建一定数量的数据库连接,这些连接在应用程序需要时可以被复用,而不是每次请求时都创建新的连接,从而减少了创建和销毁连接的开销。C3P0作为连接池实现之一,提供了很多配置参数,例如...
数据库连接池是Java应用程序在处理数据库交互时的重要组件,它能有效地管理数据库连接,提高系统性能,降低资源消耗。在Java开发中,我们通常会使用像C3P0、Druid这样的连接池来优化数据库访问。JDBC(Java Database...
7. **连接池实现**:常见的开源数据库连接池实现有C3P0、DBCP、HikariCP、Druid等。自定义连接池需要考虑如何实现这些功能,例如使用`java.sql.Connection`接口和`java.sql.DataSource`接口来管理数据库连接。 8. *...
数据库连接池是Java应用程序中非常重要的一个组成部分,它在处理多用户并发访问数据库时能显著提高性能和资源利用率。在给定的标题“自己写的数据库连接池(java)”中,我们可以推测这是一个用户自定义的数据库连接池...
总结,骨CP作为一款快速的开源数据库连接池,为Java开发者提供了高效、可靠的数据库连接管理方案。通过合理的配置和使用,可以显著提升应用的数据库操作性能。在实际项目中,开发者应结合自身需求,综合考虑各种因素...
开源数据库连接池DBCP,全称为Jakarta-Commons-DBCP,是Apache软件基金会Jakarta项目中的一个组件,主要用于解决Java应用程序与数据库之间的连接管理问题。DBCP提供了一个高效且可配置的数据库连接池,使得多个...
Java数据库连接池驱动是Java应用程序在访问数据库时用于优化资源管理的一种技术。它提供了一种在多个数据库操作之间重用数据库连接的方式,从而避免了频繁创建和关闭连接带来的性能开销。连接池的核心思想是池化资源...
在Java开发中,数据库连接池是管理数据库连接的重要工具,它能提高应用程序的性能和效率。连接池的基本原理是预先创建一定数量的数据库连接,并存储在一个池中,当应用程序需要时,可以从池中获取连接,使用完毕后再...
- **HikariCP**:高效且稳定的连接池实现,被誉为最快的Java数据库连接池。其核心jar包为`hikaricp.jar`。 - **Apache DBCP**:Apache软件基金会提供的连接池组件,包含`commons-dbcp.jar`和`commons-pool.jar`。...
Java JDBC数据库连接池是Java应用程序与数据库交互的重要优化手段,旨在提高数据库访问效率和资源利用率。在传统的JDBC操作中,每次请求都需要建立和关闭数据库连接,这不仅耗时,还可能导致系统资源的过度消耗,...
本资源集合了常用的JDBC数据库连接jar包,以及一些知名的数据库连接池实现,如dbcp和c3p0,这对于开发人员来说是非常宝贵的资源。 首先,让我们了解一下JDBC。JDBC提供了一套标准的API,包括接口和类,使得开发者...
Java数据库连接池C3P0是一种常用的开源数据库连接管理工具,它通过提供连接池服务,提高了应用程序处理数据库连接的效率,降低了系统资源的消耗。在Java应用中,尤其是在服务器端,数据库连接的创建和关闭是相对耗时...
数据库连接池是Java开发中非常重要的一个组件,它在处理多线程环境下对数据库资源的高效利用和管理中起着关键作用。C3P0是一个开源的Java连接池实现,它提供了一种灵活且功能强大的数据库连接管理方式。在本文中,...
数据库连接池是Java应用中用于管理数据库连接的一种高效技术,它有效地解决了频繁创建和销毁数据库连接导致的资源浪费问题。本篇文章将深入探讨Java JDBC数据库连接池的工作原理及其重要性。 ### 数据库连接池的...