多種方式創建和常用屬性說明

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 );


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章