2008年10月23日 #

          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 @ 2008-10-23 10:24 金家寶 閱讀(4355) | 評論 (2)編輯 收藏

          JDBC也分2.0和3.0?

          如題。研究中...以前沒有注意過。

          posted @ 2008-10-23 10:10 金家寶 閱讀(299) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 木兰县| 互助| 南乐县| 额敏县| 武鸣县| 北流市| 桑植县| 和林格尔县| 贵阳市| 乌拉特前旗| 措美县| 察隅县| 台南市| 江华| 廊坊市| 汽车| 伊通| 普定县| 嵩明县| 封丘县| 聊城市| 千阳县| 青州市| 岳池县| 杨浦区| 县级市| 金溪县| 奉化市| 和政县| 屯昌县| 额尔古纳市| 尼勒克县| 文山县| 宁远县| 建平县| 天等县| 石河子市| 安平县| 定南县| 甘谷县| 洛川县|