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 金家寶 閱讀(4356) 評論(2)  編輯  收藏

          評論

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

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

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

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


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


          網站導航:
           
          主站蜘蛛池模板: 张家口市| 固阳县| 仙游县| 石泉县| 襄樊市| 陆川县| 准格尔旗| 铅山县| 花莲市| 保定市| 广水市| 平乡县| 明溪县| 慈利县| 谢通门县| 阿克苏市| 湖口县| 宝应县| 余江县| 方正县| 分宜县| 玉田县| 洛川县| 都江堰市| 竹溪县| 固阳县| 泾阳县| 上林县| 平度市| 长子县| 荆州市| 黄骅市| 雅安市| 花莲县| 盘山县| 庆云县| 鹤峰县| 班戈县| 彭水| 高尔夫| 额济纳旗|