首先我們先準備c3p0的jar包,我這裡的jar包名字叫
c3p0-0.9.1.2.jar
我們一共有三種配置方式,現在先用代碼java列出來
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;
import org.junit.Test;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
* c3p0
* 性能好,開源以後一般用它
*/
public class Demo1 {
/**
* 代碼配置
* @throws PropertyVetoException
* @throws SQLException
*/
// @Test
public void connPool1() throws PropertyVetoException, SQLException {
// 建立連接配接池對象
ComboPooledDataSource dataSource = new ComboPooledDataSource();
// 對池進行四大參數的配置
dataSource.setDriverClass("oracle.jdbc.driver.OracleDriver");
dataSource.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:orcl");
dataSource.setUser("chj");
dataSource.setPassword("chj");
// 池配置
//每次新增多少連接配接
dataSource.setAcquireIncrement(5);
//初始連接配接數多少
dataSource.setInitialPoolSize(20);
//最少連接配接數
dataSource.setMinPoolSize(2);
//最大連接配接數
dataSource.setMaxPoolSize(50);
Connection con = dataSource.getConnection();
System.out.println(con);
con.close();
}
/**
* 配置檔案的預設配置
* @throws SQLException
*/
// @Test
public void connPool2() throws SQLException{
/**
* 在建立連接配接池對象時,這個對象就會自動加載配置檔案!不用我們來指定
*/
ComboPooledDataSource dataSource = new ComboPooledDataSource();
Connection con = dataSource.getConnection();
System.out.println(con);
con.close();
}
/**
* 使用命名配置資訊
* @throws SQLException
*/
@Test
public void connPool3() throws SQLException{
/**
* 構造器的參數指定命名配置元素的名稱!
* <named-config name="oracle-config">
*/
ComboPooledDataSource dataSource = new ComboPooledDataSource("oracle-config");
Connection con = dataSource.getConnection();
System.out.println(con);
con.close();
}
}
而配置檔案方法的配置資訊如下,我這是隻是連接配接oracle而已,當然也可以連接配接其他的資料庫
c3p0-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!-- 這是預設配置資訊 -->
<default-config>
<!-- 連接配接四大參數配置 -->
<property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb3</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>
</default-config>
<!-- 專門為oracle提供的配置資訊 -->
<named-config name="oracle-config">
<property name="jdbcUrl">jdbc:oracle:thin:@localhost:1521:orcl</property>
<property name="driverClass">oracle.jdbc.driver.OracleDriver</property>
<property name="user">luowg</property>
<property name="password">luowg</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>
上面的隻是個例子,教如何使用。
但在實際的javaWeb開發中,我們的資料源一般都受到spring的管理,是以我們在spring是怎麼注入的呢?
<!-- 配置資料源 -->
<!-- 導入資源檔案 -->
<context:property-placeholder location="classpath:/config/database.properties"/>
<!-- c3p0 資料源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="initialPoolSize" value="5"></property>
<property name="minPoolSize" value="5"/>
<property name="maxPoolSize" value="10"/>
<property name="maxIdleTime" value="600"/>
<property name="maxStatements" value="0"/>
</bean>
我的資源檔案database.properties如下
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://localhost\:3306/ordro?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true&failOverReadOnly\=false
jdbc.username=chj
jdbc.password=chj
jdbc.initPoolSize=5
jdbc.maxPoolSize=10
具體可以看我的文章spring和mybatis的結合,裡面就是用到了c3p0資料源。
文章連結:http://blog.csdn.net/qq_18895659/article/details/51772577
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICN4MjM0ATM5AzMwcDM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)