java 數(shù)據(jù)庫緩沖池 使用c3p0

          c3p0很容易使用的開源專業(yè)級jdbc數(shù)據(jù)庫緩沖池。
          它是sourceforge上的一個開源項目,
          項目在
          http://sourceforge.net/projects/c3p0
          他的眾多特性這里就不一一介紹了。
          比較爽的一點就是
          當Connection歸還緩沖池時,c3p0會很小心的關閉
          這條連接打開的Statement和ResultSet,免去了使用時
          自己動手小心翼翼的關閉。

          c3p0使用非常簡單,這里給一個例子

          package common.db;

          import java.sql.Connection;
          import java.sql.SQLException;
          import java.util.Properties;


          import com.mchange.v2.c3p0.ComboPooledDataSource;
          import com.mchange.v2.c3p0.DataSources;

          public final class ConnectionManager {
          ?private static ConnectionManager instance;
          ?
          ?public ComboPooledDataSource ds;
          ?private static String c3p0Properties="c3p0.properties";
          ?
          ?private ConnectionManager() throws Exception {
          ??Properties p = new Properties();
          ??p.load(this.getClass().getResourceAsStream(c3p0Properties));
          ??ds = new ComboPooledDataSource();
          ?}
          ?
          ?public static final ConnectionManager getInstance() {
          ??if (instance == null) {
          ???try {
          ????instance = new ConnectionManager();
          ???} catch (Exception e) {
          ????e.printStackTrace();
          ???}
          ??}
          ??return instance;
          ?}
          ?
          ?public synchronized final Connection getConnection() {
          ??try {
          ???return ds.getConnection();
          ??} catch (SQLException e) {
          ???e.printStackTrace();
          ??}
          ??return null;
          ?}

          ?protected void finalize() throws Throwable {
          ??DataSources.destroy(ds);?//關閉datasource
          ??super.finalize();
          ?}
          ?
          }

          然后在ConnectionManager類的目錄下再創(chuàng)建一個配置文件c3p0.properties
          內容如下:
          #db login parameters
          driverClass=com.mysql.jdbc.Driver
          jdbcUrl=jdbc:mysql://localhost/test?useUnicode=no&characterEncoding=GBK
          user=test
          password=test

          #pool parameters
          initialPoolSize=2
          maxPoolSize=5
          #maxIdleTime=10
          #idleConnectionTestPeriod=5
          autoCommitOnClose=true

          完整的配置文件參數(shù)參看c3p0的文檔

          使用connection時很簡單
          Connection conn = ConnectionManager.getInstance().getConnection();
          ...
          最后 conn.close() 即可,

          posted on 2008-10-23 10:24 金家寶 閱讀(4356) 評論(2)  編輯  收藏

          評論

          # re: java 數(shù)據(jù)庫緩沖池 使用c3p0 2009-01-10 10:23 John.Yu

          lz,的代碼不錯,但你的 ds沒有propertey  回復  更多評論   

          # re: java 數(shù)據(jù)庫緩沖池 使用c3p0 2009-01-12 09:38 roc

          樓主還沒看到樓上的回復,,  回復  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          主站蜘蛛池模板: 凯里市| 娄底市| 三亚市| 龙岩市| 卢龙县| 金秀| 友谊县| 鹤山市| 永川市| 张掖市| 华池县| 德格县| 毕节市| 邵阳县| 金寨县| 海兴县| 准格尔旗| 姜堰市| 江源县| 察哈| 渭南市| 兖州市| 溧水县| 石嘴山市| 涪陵区| 乐安县| 洛川县| 镇江市| 大新县| 苗栗市| 东丰县| 南江县| 南投市| 迁安市| 郯城县| 兴化市| 东至县| 黑山县| 绩溪县| 阳原县| 徐水县|