首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

c3p0 連接池三種配置方式詳解:代碼、XML 與 Properties

     編輯:Java 綜合教學

c3p0 連接池三種配置方式全解析

c3p0 是經典的 JDBC 連接池庫,提供了靈活的配置方式。本文以 MySQL 為例,詳細演示代碼硬編碼、XML 配置文件、Properties 文件三種初始化 ComboPooledDataSource 的方法,並說明與 DbUtils 等工具類的配合使用。

方式一:代碼直接設置屬性(最基礎)

import com.mchange.v2.c3p0.ComboPooledDataSource;

ComboPooledDataSource ds = new ComboPooledDataSource();
ds.setDriverClass("com.mysql.jdbc.Driver");
ds.setJdbcUrl("jdbc:mysql://localhost:3306/mydb");
ds.setUser("root");
ds.setPassword("asd");

獲取連接兩種模式:

  1. 傳給 QueryRunner(推薦,自動管理連接)
  2. QueryRunner qr = new QueryRunner(ds);
  3. 手動獲取連接(需自行關閉)
  4. Connection conn = ds.getConnection();
    QueryRunner qr = new QueryRunner();
    User user = qr.query(conn, sql, new BeanHandler<User>(User.class));

方式二:XML 配置文件(c3p0-config.xml)

文件名固定為 c3p0-config.xml,放在 classpath(src 目錄)下。

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
  <default-config>
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/yourdb</property>
    <property name="user">root</property>
    <property name="password">asd</property>
  </default-config>

  <named-config name="mysql">
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/yourdb</property>
    <property name="user">root</property>
    <property name="password">asd</property>
  </named-config>

  <named-config name="oracle">
    <!-- Oracle 配置 -->
  </named-config>
</c3p0-config>

初始化:

  • 默認配置:new ComboPooledDataSource()
  • 指定命名配置:new ComboPooledDataSource("mysql")

方式三:Properties 文件(c3p0.properties)

文件名固定為 c3p0.properties,同樣放在 classpath 下。

c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql://localhost:3306/yourdb
c3p0.user=root
c3p0.password=asd

初始化:new ComboPooledDataSource() 會自動讀取。

優缺點對比與建議

方式優點缺點適用場景
代碼硬編碼直觀、調試方便、動態決定參數修改需重編譯、敏感信息易洩露快速原型、測試、參數動態計算
XML 配置支持多環境命名配置、結構清晰、標準化XML 冗長、需放在 classpath企業級應用、多數據源切換
Properties 文件簡潔、易於運維修改、與 Spring 搭配佳類型轉換靠約定、無命名空間隔離生產環境標準部署、容器化配置注入

常用進階屬性(節選)

c3p0.initialPoolSize=5
c3p0.minPoolSize=5
c3p0.maxPoolSize=20
c3p0.maxIdleTime=1800
c3p0.acquireIncrement=5
c3p0.testConnectionOnCheckout=true
c3p0.preferredTestQuery=SELECT 1

更多屬性請參考官方文檔。生產環境建議啟用 testConnectionOnCheckout 或定時 idleConnectionTestPeriod 防止連接失效。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved