一.首先如果要使用這個連接池,就需要導入c3p0-0.9.2-pre1.jar架包和支持架包mchange-commons-0.2.jar,
我這里測試使用的是msql數據庫 當然也需要導入mysql連接架包mysql-connector-java-5.1.26-bin.jar
下載地址:https://pan.baidu.com/s/1GXBVvLcATClOvZyF6k1z6g
二.我這里的配置文件結構如下
這里的c3p0-0.9.2-pre是主要架包 c3p0-config.xml必須在src目錄下 才可以檢測到
有三種方式使用c3p0這個jar
首先看一下配置文件c3p0-config.xml中的信息
<?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <!-- This is default config! --> <!-- 默認配置 --> <default-config> <!-- 初始化時 c3p0-config連接池的初始化連接數 --> <property name="initialPoolSize">10</property> <!-- 連接空閑等待時間 超過這個時間 自動斷開連接 --> <property name="maxIdleTime">30</property> <!-- 連接池最大連接數 --> <property name="maxPoolSize">100</property> <!-- 連接池最小連接數 --> <property name="minPoolSize">10</property> <!-- 最多可以得到多少個statement 也就是說可以創建多少個可以執行sql語句的對象 --> <property name="maxStatements">200</property> <property name="driverClass">com.mysql.jdbc.Driver</property> <!-- 連接url路徑 --> <property name="jdbcUrl">jdbc:mysql://localhost:3306/mysql1</property> <!-- 連接用戶的用戶賬戶 --> <property name="user">root</property> <!-- 連接密碼 --> <property name="password">zhousong</property> </default-config> <named-config name="mysql"> <!-- 連接mysql數據庫需要的參數 --> <!-- 驅動類 --> <property name="driverClass">com.mysql.jdbc.Driver</property> <!-- 連接url路徑 --> <property name="jdbcUrl">jdbc:mysql://localhost:3306/mysql1</property> <!-- 連接用戶的用戶賬戶 --> <property name="user">root</property> <!-- 連接密碼 --> <property name="password">zhousong</property> <!-- 初始化連接時 的連接數 --> <property name="initialPoolSize">10</property> <!-- 初始化時 c3p0-config連接池的初始化連接數 --> <property name="initialPoolSize">10</property> <!-- 連接空閑等待時間 超過這個時間 自動斷開連接 --> <property name="maxIdleTime">30</property> <!-- 每次增加10 當連接不夠時 --> <property name="acquireIncrement">10</property> <!-- 連接池最大連接數 --> <property name="maxPoolSize">100</property> <!-- 連接池最小連接數 --> <property name="minPoolSize">10</property> <!-- 最多可以得到多少個statement 也就是說可以創建多少個可以執行sql語句的對象 --> <property name="maxStatements">200</property> </named-config> </c3p0-config>
然后測試三種使用方式
package C3p0Demo; import java.beans.PropertyVetoException; import java.sql.Connection; import java.sql.SQLException; import org.junit.Test; import com.mchange.v2.c3p0.ComboPooledDataSource; public class Demo1 { /* * C3p0的代碼配置方式 * 通過代碼進行四大參數組件的配置 * */ @Test public void C3p0DemoTest() throws PropertyVetoException, SQLException{ //C3p0類的使用 ComboPooledDataSource dataSource =new ComboPooledDataSource(); /* * 使用四大參數組件 連接數據庫 */ dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mysql1"); dataSource.setUser("root"); dataSource.setPassword("zhousong"); //池配置 dataSource.setInitialPoolSize(10);//初始化連接池時 初始化;連接數為10 dataSource.setAcquireIncrement(5); //設置連接池增量連接數 dataSource.setMaxPoolSize(20); //連接池最大連接數 dataSource.setMinPoolSize(5); //設置連接池最小連接數 Connection connection =dataSource.getConnection(); //使用的是動態代理機制 System.out.println(connection); connection.close(); } /* * 使用默認配置文件 進行連接池子配置 * 默認配置 */ @Test public void C3p0DemeTest2() throws SQLException{ ComboPooledDataSource dataSource =new ComboPooledDataSource(); Connection connection =dataSource.getConnection(); System.out.println(connection); connection.close(); } /* * 使用配置文件 進行連接池子配置 * 命令配置方式 */ @Test public void C3p0DemeTest3() throws SQLException{ ComboPooledDataSource dataSource =new ComboPooledDataSource("mysql"); Connection connection =dataSource.getConnection(); System.out.println(connection); connection.close(); } }
分別都通過 這樣就可以使用這個架包了