准备的jar包:
c3p0-0.9.2.1.jar
mchange-commons-0.2.jar
如果是Oracle数据库则还需
c3p0-oracle-thin-extras-0.9.2.1.jar
我使用的是IDEA,之前只是将jar包导入到项目中,在tomcat中一跑就报找不到类异常。后面把jar包粘贴到tomcat的lib目录下,再从lib目录下添加依赖到项目中就ok了。
- 首先导入jar包,这里用的是mysql数据库,所以还需要导入mysql驱动包。然后获取DataSource获取Connection。
ComboPooledDataSource dataSource = new ComboPooledDataSource();
try {
// 对池进行四大参数的配置
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mydb3");
dataSource.setUser("root");
dataSource.setPassword("123");
// 池配置
dataSource.setAcquireIncrement(5);
dataSource.setInitialPoolSize(20);
dataSource.setMinPoolSize(2);
dataSource.setMaxPoolSize(50);
Connection connection = dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
} catch (PropertyVetoException e) {
e.printStackTrace();
}
上面是通过java代码初始化DataSource,还可以通过配置文件来初始化。但必须满足两个条件:
1. 文件名必须为c3p0-config.xml
2. 文件必须在src目录下。
同时,还可以指定命名配置元素的名称
/**
* 构造器的参数指定命名配置元素的名称!
* <named-config name="oracle-config">
*/
ComboPooledDataSource dataSource = new ComboPooledDataSource("oracle-config");
Connection con = dataSource.getConnection();
System.out.println(con);
con.close();
c3p0-config.xml
的内容:
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!-- 这是默认配置信息 -->
<default-config>
<!-- 连接四大参数配置 -->
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">root</property>
<property name="password">yirenjie</property>
<!-- 池参数配置 -->
<property name="acquireIncrement">3</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">2</property>
<property name="maxPoolSize">10</property>
</default-config>
<!-- 专门为oracle提供的配置信息 -->
<named-config name="oracle-config">
<property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb1</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">root</property>
<property name="password">123</property>
<property name="acquireIncrement">3</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">2</property>
<property name="maxPoolSize">10</property>
</named-config>
</c3p0-config>
上面在java代码中指定之后,对应的就是oracle-config
的初始化参数了。
如果同时存在配置文件和java代码初始化,则java代码会覆盖配置文件的初始化。