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

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

          c3p0使用非常簡(jiǎn)單,這里給一個(gè)例子

          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);?//關(guān)閉datasource
          ??super.finalize();
          ?}
          ?
          }

          然后在ConnectionManager類(lèi)的目錄下再創(chuàng)建一個(gè)配置文件c3p0.properties
          內(nèi)容如下:
          #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時(shí)很簡(jiǎn)單
          Connection conn = ConnectionManager.getInstance().getConnection();
          ...
          最后 conn.close() 即可,

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

          評(píng)論

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

          lz,的代碼不錯(cuò),但你的 ds沒(méi)有propertey  回復(fù)  更多評(píng)論   

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

          樓主還沒(méi)看到樓上的回復(fù),,  回復(fù)  更多評(píng)論   


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 磐石市| 四会市| 大化| 敖汉旗| 屏东县| 长葛市| 余庆县| 香格里拉县| 临猗县| 沾化县| 邛崃市| 新丰县| 顺昌县| 太原市| 平谷区| 星座| 东乡| 潮州市| 龙泉市| 澎湖县| 南漳县| 鄂尔多斯市| 白沙| 乐平市| 吉木乃县| 贵港市| 静安区| 贵定县| 沙河市| 宁国市| 华坪县| 平定县| 佳木斯市| 株洲县| 鄂伦春自治旗| 巴塘县| 嘉峪关市| 大厂| 天气| 鹤庆县| 洛扎县|