c3p0的常用配置方式

來源:互聯網
上載者:User

1:第一種方式非常簡單

c3p0.driverClass=com.mysql.jdbc.Driverc3p0.jdbcUrl=jdbc:mysql://localhost:3308/databasec3p0.user=rootc3p0.password=root

檔案名稱字為:c3p0.properties(放在src目錄下面)
//程式我寫的比較簡單,可以用來測試執行配置。

package jdbc.mysql;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import com.mchange.v2.c3p0.ComboPooledDataSource;public class C3P0 {public static void main(String[] args) throws SQLException {//資料庫連接池預設會到classpath下去找資料庫的配置。ComboPooledDataSource data = new ComboPooledDataSource();Connection conn = data.getConnection();String sql = "select * from table";PreparedStatement pstmt = conn.prepareStatement(sql);ResultSet rs = pstmt.executeQuery();while(rs.next()){System.out.println(rs.getString(1));}}}

2:第二種方式非常靈活好用,也非常接近於我們平時的hibernate和struts的設定檔方式
   而且可以為多個資料來源提供服務,提供default-config和named-config兩種配置方式 。
   其中裡面的具體參數可參照c3p0文檔(http://www.mchange.com/projects/c3p0/) 比較簡單。根據屬性名稱字幾乎可以看出意思。

<?xml version="1.0" encoding="UTF-8"?><c3p0-config>  <default-config>    <property name="user">root</property>    <property name="password">1234</property>    <property name="driverClass">com.mysql.jdbc.Driver</property>    <property name="jdbcUrl">jdbc:mysql://localhost:3306/database?characterEncoding=UTF-8&useOldAliasMetadataBehavior=true</property>     <property name="initialPoolSize">2</property>    <property name="maxIdleTime">30</property>    <property name="maxPoolSize">100</property>    <property name="minPoolSize">2</property>  </default-config>    <named-config name="database">    <property name="user">root</property>    <property name="password">root</property>    <property name="driverClass">com.mysql.jdbc.Driver</property>    <property name="jdbcUrl">jdbc:mysql://localhost:3308/database?characterEncoding=UTF-8&useOldAliasMetadataBehavior=true</property>     <property name="initialPoolSize">2</property>    <property name="maxIdleTime">30</property>    <property name="maxPoolSize">100</property>    <property name="minPoolSize">2</property>  </named-config></c3p0-config>

package jdbc.mysql;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import javax.sql.DataSource;import com.mchange.v2.c3p0.ComboPooledDataSource;public class C3p0JDBC {public static void main(String[] args) throws SQLException {System.setProperty("com.mchange.v2.c3p0.cfg.xml",System.getProperty("user.dir")+"/config/c3p0-config.xml");//上面的設定檔  <default-config> //預設情況下 建構函式傳空值。會去找預設配置DataSource data = new ComboPooledDataSource();//上面的設定檔  <named-config name="database">//如果建構函式中傳值,則找到對應的配置。DataSource data1 = new ComboPooledDataSource("database");Connection conn = data.getConnection();Connection conn1 = data1.getConnection();String sql = "select * from table";PreparedStatement pstmt = conn1.prepareStatement(sql);ResultSet rs = pstmt.executeQuery();while(rs.next()){System.out.println(rs.getString(1));}}}

3:這種配置是最不常用的,比較繁瑣,就是把所有配置都寫到程式裡面來。

可選擇性使用

import com.mchange.v2.c3p0.*;........ComboPooledDataSource cpds = new ComboPooledDataSource();cpds.setDriverClass( "org.postgresql.Driver" ); //loads the jdbc driver            cpds.setJdbcUrl( "jdbc:postgresql://localhost/testdb" );cpds.setUser("dbuser");                                  cpds.setPassword("dbpassword");                                  cpds.setMaxStatements( 180 ); cpds.close();


相關關鍵詞:
相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.