C3P0接続プールの簡単な紹介

c3p0は、jdbc3仕様およびjdbc2 std拡張で説明されているように、JNDIバインド可能データソース(接続およびステートメントプールを実装するデータソースを含む)を介して従来の(DriverManagerベースの)JDBCドライバーを拡張するための使いやすいライブラリです。 。

C3P0接続プールの概要:

C3P0アドレス:https://sourceforge.net/projects/c3p0/?source = navbar

C3P0はオープ​​ンソースの接続プールです。Hibernateフレームワークの場合、デフォルトで接続プールの実装としてC3P0が推奨されます。

C3P0 jarパッケージ:c3p0-0.9.1.2.jar

C3P0で一般的に使用される構成パラメーターの説明:

パラメータ 説明
initialPoolSize 接続プールが作成されたばかりのときの接続数
maxPoolSize 接続プールに配置できる接続の数
checkoutTimeout 接続プールに接続がない場合の最大待機時間
maxIdleTime 接続プール内のアイドル接続は、使用されていない限りリサイクルされます。デフォルトは0、0はリサイクルなしを意味します

APIの紹介:

com.mchange.v2.c3p0.ComboPooledDataSourceこのクラスは、C3P0の接続プールオブジェクトを表します。接続プールを作成するには、次の2つの一般的な方法があります。

1.无参构造,使用默认配置

2.有参构造,使用命名配置

  1. public ComboPooledDataSource()
    无参构造使用默认配置(使用xml中default-config标签中对应的参数)
  2. public ComboPooledDataSource(String configName)
    有参构造使用命名配置(configName:xml中配置的名称,使用xml中named-config标签中对应的参数)
  3. public Connection getConnection() throws SQLException
    从连接池中取出一个连接

C3P0を使用する手順:1。jar
    パッケージをダウンロードし、パッケージをガイドします

c3p0-0.9.5.2.jar
mchange-commons-java-0.2.12.jar

    2.構成に使用するxml構成ファイルはsrcディレクトリ(javaSEプロジェクト)にあり、ファイル名はc3p0-config.xmlである必要があります。 

<c3p0-config>
  <!-- 使用默认的配置读取连接池对象 -->
  <default-config>
  	<!--  连接参数 -->
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/JDBC</property>
    <property name="user">root</property>
    <property name="password">root</property>
    
    <!-- 连接池参数 -->
    <property name="initialPoolSize">5</property>
    <property name="maxPoolSize">10</property>
    <property name="checkoutTimeout">3000</property>
  </default-config>

  <named-config name="otherc3p0"> 
    <!--  连接参数 -->
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/JDBC</property>
    <property name="user">root</property>
    <property name="password">root</property>
    
    <!-- 连接池参数 -->
    <property name="initialPoolSize">5</property>
    <property name="maxPoolSize">6666</property>
    <property name="checkoutTimeout">1000</property>
  </named-config>
  
  <named-config name="abc"> 
    <!--  连接参数 -->
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/JDBC</property>
    <property name="user">root</property>
    <property name="password">root</property>
    
    <!-- 连接池参数 -->
    <property name="initialPoolSize">5</property>
    <property name="maxPoolSize">6</property>
    <property name="checkoutTimeout">1000</property>
  </named-config>
  
</c3p0-config>

    3.コアクラスオブジェクトComboPooledDataSourceを作成します。4
    。データソースのメソッドConnectiongetConnection()を呼び出します。 

package C3p0_01;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

public class C3p0Demo {
    public static void main(String[] args) throws SQLException {
        //3.创建核心类对象
        //在创建c3p0核心类对象时,自动去src目录中,找指定的配置文件c3p0-config.xml,自动解析得到数据库连接四要素
 
        //可以使用其实现类进行核心类对象的创建
//       ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();

        //可以使用其接口的多态核心类对象的创建
        DataSource dataSource = new ComboPooledDataSource();
        for (int i = 0; i < 11; i++) {
            Connection connection = dataSource.getConnection();
            System.out.println(i+"_"+connection);
            if(i == 5){
                connection.close();//数据库改写了连接的close方法,变成了返回连接池
            }
        }
    }
}

 

 

おすすめ

転載: blog.csdn.net/LOVE_Me__/article/details/104649725