标签:des blog io ar os 使用 java sp 文件
1.C3P0 简介
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。
C3P0的数据库连接池的核心类是ComboPooledDataSource
使用C3P0需要在工程中导入的jar包
c3p0-0.9.2-pre5\lib下有三个jar包,如果使用MySQL数据库,只需导入c3p0-0.9.2-pre5.jar,mchange-commons-java-0.2.3两个包即可,另外一个c3p0-oracle-thin-extras-0.9.2-pre5.jar供Oracle数据库使用.
2.代码实现
方式一,与DBCP代码实现类似,使用ComboPooledDataSource自身的API实现对数据库连接池的属性进行配置.
import java.sql.*;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3P0Utils {
//1 准备一个连接池
private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
static{
//设置参数
try {
//1.1 数据库连接基本4项
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/day17");
dataSource.setUser("root");
dataSource.setPassword("fujianyi");
//1.2 连接池的特性
// * 初始化个数
dataSource.setInitialPoolSize(10);
// * 最大数
dataSource.setMaxPoolSize(20);
// * 最小数
dataSource.setMinPoolSize(5);
// * 每次增加量
dataSource.setAcquireIncrement(3);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static Connection getConnection() throws SQLException{
return dataSource.getConnection();
}
}
方式二,使用C3P0的配置文件c3p0-config.xml,对数据库连接池进行设置,在创建ComboPooledDataSource对象时,将配置文件中<named-config name="XXX">name属性的值作为字符串参数传入,即可完成配置文件的自动加载,配置文件同样需要放在classpath路径下,即src路径.
import java.sql.Connection;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3P0Utils2 {
private static ComboPooledDataSource dataSource;
static{
dataSource = new ComboPooledDataSource("XXX");
}
public static Connection getConnection() throws SQLException{
return dataSource.getConnection();
}
}
关于配置文件
首先配置文件的名必须为c3p0-config.xml,且必须放在classpath路径下,其格式及内容如下,
<c3p0-config>
<!-- 默认配置,如果没有指定则使用这个配置 -->
<default-config>
<property name="checkoutTimeout">30000</property>
<property name="idleConnectionTestPeriod">30</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">200</property>
<user-overrides user="test-user">
<property name="maxPoolSize">10</property>
<property name="minPoolSize">1</property>
<property name="maxStatements">0</property>
</user-overrides>
</default-config>
<!-- 命名的配置 -->
<named-config name="XXX">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/day17</property>
<property name="user">root</property>
<property name="password">fujianyi</property>
<!-- 如果池中数据连接不够时一次增长多少个 -->
<property name="acquireIncrement">5</property>
<property name="initialPoolSize">20</property>
<property name="minPoolSize">10</property>
<property name="maxPoolSize">40</property>
<property name="maxStatements">0</property>
<property name="maxStatementsPerConnection">5</property>
</named-config>
</c3p0-config>
标签:des blog io ar os 使用 java sp 文件
原文地址:http://www.cnblogs.com/fujianyi/p/4070236.html