關於c3p0串連池串連mysql資料庫需要注意的幾點

來源:互聯網
上載者:User

標籤:cep   pool   封裝   row   ons   ati   public   nts   bsp   

 

什麼是資料庫連接池:

  用池來管理Connection,這可以重複使用Connection。有了池,所以我們就不用自己來建立Connection,而是通過池來擷取Connection對象。

  當使用完Connection後,調用Connection的close()方法也不會真的關閉Connection,而是把Connection“歸還”給池。池就可以再利用這個Connection對象了。

匯入DBUtils的工具包:commons-dbutils-1.6.jar

commons-dbutils 是 Apache 組織提供的一個開源 JDBC工具類庫,它是對JDBC的簡單封裝,學習成本極低,並且使用dbutils能極大簡化jdbc編碼的工作量,同時也不會影響程式的效能。因此dbutils成為很多不喜歡hibernate的公司的首選。

匯入C3P0的工具包:c3p0-0.9.1.2.jar

首先配置c3p0,目前使用最多的是用c3p0-config.xml檔案進行配置:

  ①名字必須是c3p0-config.xml。

  ②必須放在src根目錄下,切記不要與web.xml放在一起。

此為c3p0配置:

<default-config>為預設配置,還可以增加<named-config name="mysqlConfig">,其中mysqlConfig是你自己的配置名字。

  此時在c3p0工具類中建立 ComboPooledDataSource執行個體是要加上你的配置名字,即:new ComboPooledDataSource("mysqlConfig")

②  

#initialPoolSize:串連池初始化時建立的串連數,default : 3,取值應在minPoolSize與maxPoolSize之間 c3p0.initialPoolSize=10

  #minPoolSize:串連池保持的最小串連數,default : 3    c3p0.minPoolSize=10

  #maxPoolSize:串連池中擁有的最大串連數,如果獲得新串連時會使串連總數超過這個值則不會再擷取新串連,而是等待其他串連釋放,所以這個值有可能會 設計地很大,default : 15       c3p0.maxPoolSize=50

  #acquireIncrement:串連池在無空閑串連可用時一次性建立的新資料庫連接數,default : 3   c3p0.acquireIncrement=5

③ 

driverClass 表示你的資料庫驅動類,你用的什麼資料庫

jdbcUrl   表示你所要串連的資料庫,此處automotic_sign為你建立的資料庫的名稱。

後面的參數 ?useSSl=true 表示是否用SSL串連資料庫,此參數不是必須的,mysql版本比較高時,進行串連時會提示該資訊。

user和password是 你的資料庫的使用者名稱和密碼

<?xml version="1.0" encoding="UTF-8"?><c3p0-config>  <default-config>     <property name="driverClass">com.mysql.jdbc.Driver</property>      <property name="jdbcUrl">jdbc:mysql://localhost:3306/automotic_sign?useSSL=true</property>      <property name="user">root</property>      <property name="password">root</property>      <property name="initialPoolSize">5</property>      <property name="minPoolSize">2</property>     <property name="acquireIncrement">3</property>     <property name="maxPoolSize">10</property>   </default-config></c3p0-config>

 

建立c3p0工具類與dbutils工具類:

package com.jdbc;import java.sql.Connection;import java.sql.SQLException;import javax.sql.DataSource;import org.apache.commons.dbutils.QueryRunner;import com.mchange.v2.c3p0.ComboPooledDataSource;public class Jdbcutils {    private static ComboPooledDataSource dataSource;//建立c3p0串連,整個項目有一個串連池就可以了,設為static只要執行個體化一次    static {        dataSource = new ComboPooledDataSource();    }        public static DataSource getDataSource() {        return dataSource;    }    public static QueryRunner getQueryRunner(){//建立DButils常用工具類QueryRunner的對象        return new QueryRunner(dataSource);    }      public static Connection getConnection(){        try {            Connection connection=dataSource.getConnection();            return connection;        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();            throw new RuntimeException();        }    }    }

 

關於c3p0串連池串連mysql資料庫需要注意的幾點

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.