tomcat下c3p0連接池配置問題


一.首先如果要使用這個連接池,就需要導入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();

    }
}

分別都通過 這樣就可以使用這個架包了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM