java 數據庫緩沖池 使用c3p0

          c3p0很容易使用的開源專業級jdbc數據庫緩沖池。
          它是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類的目錄下再創建一個配置文件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

          完整的配置文件參數參看c3p0的文檔

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

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

          評論

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

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

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

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


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


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 沈丘县| 清镇市| 仙桃市| 都匀市| 林口县| 麦盖提县| 营口市| 连州市| 鄂温| 永康市| 察隅县| 富顺县| 仁化县| 原阳县| 仙桃市| 余姚市| 唐山市| 孝义市| 秦安县| 亚东县| 保靖县| 吉水县| 沙雅县| 桦甸市| 林芝县| 敦化市| 银川市| 宿松县| 兴义市| 新民市| 龙陵县| 奈曼旗| 五河县| 上思县| 论坛| 增城市| 中江县| 德格县| 崇文区| 尤溪县| 肇州县|