package com.ydsc3p0; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import javax.sql.DataSource; import com.mchange.v2.c3p0.DataSources; /** * 另一種創創建鏈接池 * @author yu * */ public class DbUtils2 { public static void main(String[] args) { //簡單的實現方式 simple(); //配置屬性 SimpleAttr(); } /** * 簡單的實現方式 */ private static void simple(){ try { DataSource ds_unpooled = DataSources.unpooledDataSource("jdbc:mysql://localhost:3306/day05?characterEncoding=UTF-8", "root", "1234"); System.out.println(ds_unpooled.getConnection()); } catch (SQLException e) { e.printStackTrace(); } } private static void SimpleAttr() { try { DataSource ds_unpooled = DataSources.unpooledDataSource("jdbc:mysql://localhost:3306/day05?characterEncoding=UTF-8", "root", "1234"); //帶有屬性的創建方式 Map overrides = new HashMap(); overrides.put("maxStatements", "200"); //Stringified property values work overrides.put("maxPoolSize", new Integer(50)); //"boxed primitives" also work DataSource unpooled = DataSources.pooledDataSource(ds_unpooled,overrides); //創建自定義的名稱 //DataSource unpooled = DataSources.pooledDataSource(ds_unpooled,"myPool",overrides); System.out.println(ds_unpooled.getConnection()); } catch (SQLException e) { e.printStackTrace(); } } }
常用配置說明
package com.ydsc3p0; import java.beans.PropertyVetoException; import java.sql.SQLException; import com.mchange.v2.c3p0.ComboPooledDataSource; /** * C3P0的工具類 第一個簡單的C3P0類 是否能得到鏈接 * * @author yu */ public class DbUtil { public static void main(String[] args) { ComboPooledDataSource cpds=getDs(); //設置預處理的數、兩者都默認是0 cpds.setMaxStatements(100); //cpds.setMaxStatementsPerConnection(100); //設置最小鏈接數 cpds.setMinPoolSize(5); //當連接池中的連接耗盡的時候c3p0一次同時獲取的連接數 cpds.setAcquireIncrement(3); //設置最大鏈接數 cpds.setMaxPoolSize(20); //得到鏈接池的名稱 String poolName=cpds.getDataSourceName(); System.out.println(poolName); //關閉 cpds.close(); } public static ComboPooledDataSource getDs() { // 創建鏈接池 ComboPooledDataSource cpds = new ComboPooledDataSource(); //創建自己鏈接池名稱 //ComboPooledDataSource cpds = new ComboPooledDataSource("myPool"); try { // 設置驅動 cpds.setDriverClass("com.mysql.jdbc.Driver"); // 設置鏈接地址 cpds.setJdbcUrl("jdbc:mysql://localhost:3306/day05?characterEncoding=UTF-8"); // 設置用戶名 cpds.setUser("root"); // 設置密碼 cpds.setPassword("1234"); } catch (PropertyVetoException e) { e.printStackTrace(); } return cpds; } }
關閉
DataSources.destroy( ds_pooled );