C3P0数据源
C3P0是一个开放源代码的JDBC数据源实现项目,它在lib目录中与Hibernate一起发布,实现了JDBC3和JDBC2扩展规范说明的 Connection 和Statement 池。C3P0类包位于/lib/c3p0/c3p0-0.9.0.4.jar。下面是使用C3P0配置一个 Oracle数据源:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value=" oracle.jdbc.driver.OracleDriver "/>
<property name="jdbcUrl" value=" jdbc:oracle:thin:@localhost:1521:ora9i "/>
<property name="user" value="admin"/>
<property name="password" value="1234"/>
</bean>
ComboPooledDataSource和BasicDataSource一样提供了一个用于关闭数据源的close()方法,这样我们就可以保证Spring容器关闭时数据源能够成功释放。
C3P0拥有比DBCP更丰富的配置属性,通过这些属性,可以对数据源进行各种有效的控制:
- acquireIncrement:当连接池中的连接用完时,C3P0一次性创建新连接的数目;
- acquireRetryAttempts:定义在从数据库获取新连接失败后重复尝试获取的次数,默认为30;
- acquireRetryDelay:两次连接中间隔时间,单位毫秒,默认为1000;
- autoCommitOnClose:连接关闭时默认将所有未提交的操作回滚。默认为false;
- automaticTestTable: C3P0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数,那么属性preferredTestQuery将被忽略。你 不能在这张Test表上进行任何操作,它将中为C3P0测试所用,默认为null;
- breakAfterAcquireFailure:获取连接失败将会引起所有等待获取连接的线程抛出异常。但是数据源仍有效保留,并在下次调 用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试获取连接失败后该数据源将申明已断开并永久关闭。默认为 false;
- checkoutTimeout:当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出SQLException,如设为0则无限期等待。单位毫秒,默认为0;
- connectionTesterClassName: 通过实现ConnectionTester或QueryConnectionTester的类来测试连接,类名需设置为全限定名。默认为 com.mchange.v2.C3P0.impl.DefaultConnectionTester;
- idleConnectionTestPeriod:隔多少秒检查所有连接池中的空闲连接,默认为0表示不检查;
- initialPoolSize:初始化时创建的连接数,应在minPoolSize与maxPoolSize之间取值。默认为3;
- maxIdleTime:最大空闲时间,超过空闲时间的连接将被丢弃。为0或负数则永不丢弃。默认为0;
- maxPoolSize:连接池中保留的最大连接数。默认为15;
- maxStatements:JDBC的标准参数,用以控制数据源内加载的PreparedStatement数量。但由于预缓存的Statement属 于单个Connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素,如果maxStatements与 maxStatementsPerConnection均为0,则缓存被关闭。默认为0;
- maxStatementsPerConnection:连接池内单个连接所拥有的最大缓存Statement数。默认为0;
- numHelperThreads:C3P0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能,通过多线程实现多个操作同时被执行。默认为3;
- preferredTestQuery:定义所有连接测试都执行的测试语句。在使用连接测试的情况下这个参数能显著提高测试速度。测试的表必须在初始数据源的时候就存在。默认为null;
- propertyCycle: 用户修改系统配置参数执行前最多等待的秒数。默认为300;
- testConnectionOnCheckout:因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的时候都 将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
- 等方法来提升连接测试的性能。默认为false;
- testConnectionOnCheckin:如果设为true那么在取得连接的同时将校验连接的有效性。默认为false。
分享到:
相关推荐
MySQL.C3p0配置动态数据源是Java开发中常见的数据库连接池管理技术,它结合了MySQL数据库驱动和C3p0连接池库,为应用程序提供高效、稳定的数据库连接管理。在进行这样的配置时,需要引入特定的依赖包,确保项目的...
总结,Spring配置C3P0连接池涉及到添加依赖、在Spring配置文件中定义数据源bean以及配置C3P0的相关参数。通过这种方式,我们可以有效地管理和利用数据库连接,提高系统的稳定性和效率。在实际项目中,还需要根据具体...
技术分享:配置Spring数据源c3p0与dbcp
在Spring中,有两种常见的开源数据源实现:Apache的DBCP(Database Connection Pool)和C3P0。下面将详细讨论这两种数据源的配置和特性。 **DBCP数据源配置** Apache的DBCP是一个基于Jakarta Commons Pool的对象池...
配置 C3P0 数据源通常涉及以下几个步骤: 1. **引入依赖**:首先,你需要将 C3P0 的相关 JAR 包添加到项目的类路径中。例如,`c3p0-0.9.1.2.jar` 是核心库,`c3p0-0.9.1.2-jdk1.3.jar` 是针对 JDK 1.3 的版本,而 `...
C3P0 是一个开源的 JDBC 连接池,它实现了数据源和 JNDI 绑定,支持 JUnit 和 Jakarta 构架。在 Spring 框架中集成 C3P0,可以有效地管理数据库连接,提高系统的性能和稳定性。下面我们将详细介绍 Spring 配置 C3P0 ...
在Spring的配置文件(如`applicationContext.xml`)中,添加C3P0的数据源bean定义,例如: ```xml <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <!-- C3P0 连接池的配置...
在 Spring 中,C3P0 配置文件可以通过数据源实现。Spring 中,数据连接是通过数据源获得的。在 Spring 中,你可以通过 JNDI 获取应用服务器的数据源,也可以直接在 Spring 容器中配置数据源。此外,你还可以通过代码...
### Spring与C3P0数据源配置详解 #### 一、Spring框架简介 Spring框架是一个开源的Java平台,它提供了一种全面的方式来构建应用程序。Spring的核心特性包括依赖注入(Dependency Injection, DI)和面向切面编程...
2. 配置数据源:在应用的配置文件(如Java的properties文件或Spring的XML配置文件)中设置C3P0的数据源属性,包括数据库驱动、URL、用户名、密码,以及连接池的相关参数。 3. 初始化数据源:在应用启动时,根据配置...
在SSM框架中配置C3P0数据源,你需要在Spring的配置文件中添加以下内容: ```xml <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <!-- 配置连接池...
2. **配置C3P0**:在Spring的配置文件(如`applicationContext.xml`)中,定义C3P0的数据源bean,包括数据库驱动、URL、用户名、密码等,并设置C3P0的连接池参数,如`maxIdleTime`、`maxPoolSize`等。 ```xml ...
总的来说,"spring c3p0小例子"是一个关于如何在Spring项目中集成C3P0连接池的示例,通过Maven管理依赖,配置C3P0数据源,以及创建和配置DAO来执行数据库操作。这个例子可以帮助开发者理解Spring与C3P0结合使用时的...
除了资源文件配置外,C3P0也可以通过XML配置文件(如`c3p0-config.xml`)进行设置,这种方式更加灵活,可以针对不同的数据源设定不同的配置。例如: ```xml <class-name>...
本篇将深入探讨如何使用`DriverManagerDataSource`和C3P0两种不同的数据源来配置MySQL 6.0.6数据库连接。我们将从它们的基本概念、配置过程以及优缺点等方面进行详细阐述。 首先,`DriverManagerDataSource`是...
2. **创建C3P0数据源**:在Java代码或配置文件(如Spring的`application.properties`或`context.xml`)中定义C3P0数据源。 ```java import com.mchange.v2.c3p0.ComboPooledDataSource; public class C3P0...
在Spring框架中,数据源(DataSource)的配置是应用程序与数据库交互的核心部分。Spring支持多种数据源配置方式,包括基本的JDBC数据源、连接池数据源以及事务管理策略等。下面将详细介绍Spring中常见的数据源配置...
Spring的配置文件则会定义数据源、事务管理器、Bean的依赖注入等。Hibernate的配置文件会设置数据库连接参数,实体类的映射等。c3p0的配置则涉及连接池的大小、超时设置等。 总的来说,这个项目展示了如何将这些...