1. 程式人生 > >c3p0創建連接池

c3p0創建連接池

sources pass cto projects med name conf conn ati

  c3p0是目前應用最廣泛的數據庫連接池

  特性:有空閑自動回收連接功能;

     有異步執行功能。

  使用c3p0需要導包,鏈接https://sourceforge.net/projects/c3p0/

  需要導的包:c3p0-0.9.5.2-sources.jar mchange-commons-java-0.2.11-sources.jar

  c3p0解壓包中doc下有詳細使用介紹(全英文)

  核心類:ComboPooledDataSource

  配置文件:必須叫做 c3p0-config.xml

Java代碼:

public class C3p0{

  private static ComboPooledDataSource ds = null;

  //靜態代碼塊

  static{

    ds = new ComboPooledDataSource();

  }

  public static Connection getConnection(){   

    try {

      //通過ds得到一個Connection對象
      return ds.getConnection();
    } catch (SQLException e) {
      e.printStackTrace();
    }
    return null;

  }

  

    public static void main(String[] args) {
      for(int i=0; i<5; i++) {

        //在控制臺輸出連接
        System.out.println(getCon());
      }
    }

}

配置文件:

<c3p0-config>
<!-- 默認配置 -->
<default-config>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
<property name="user">root</property>

<property name="password">123123</property>

<!-- 數據庫驅動 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>

<!-- 連接池中初始化值 -->
<property name="initialPoolSize">5</property>

<!-- 連接池中最大值 -->
<property name="maxPoolSize">10</property>

<!-- 超過最大值等待時間 -->
<property name="checkoutTimeout">3000</property>
</default-config>

<!-- 通過名字intergalactoApp配置 -->
<named-config name="intergalactoApp">
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
<property name="user">root</property>
<property name="password">123123</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="initialPoolSize">10</property>
<property name="maxPoolSize">20</property>
<property name="checkoutTimeout">5000</property>
</named-config>
</c3p0-config>

c3p0創建連接池