package com.risencn.util;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DBUtilOfC3P0 {
private static ComboPooledDataSource dataSource;
private static DBUtilOfC3P0 instance = null;
public String driver = "oracle.jdbc.driver.OracleDriver";
public String url = "jdbc:oracle:thin:@localhost:1521:orcl";
public String username = "scott";
public String password = "tiger";
private DBUtilOfC3P0() {
dataSource = new ComboPooledDataSource(); // 设置jdbc连接信息
dataSource.setUser(username);
dataSource.setPassword(password);
dataSource.setJdbcUrl(url);
try {
dataSource.setDriverClass(driver);
} catch (PropertyVetoException e) {
e.printStackTrace();
}
// 设置连接池
dataSource.setInitialPoolSize(30);
dataSource.setMaxPoolSize(100);
dataSource.setMinPoolSize(10);
}
// 为了保证单例性,必须使用同步关键字
public synchronized static DBUtilOfC3P0 getInstance() {
if (instance == null)
instance = new DBUtilOfC3P0();
return instance;
}
// 连接必要的信息
public Connection getConnection() throws SQLException { // 使用工厂创建连接
return dataSource.getConnection();
}
//测试
public static void main(String[] args) throws SQLException {
long begin = System.currentTimeMillis();
// 开始时刻
for(int i=0;i<1000;i++){//获得1000次连接
Connection conn = DBUtilOfC3P0.getInstance().getConnection();
conn.close();
}
long end = System.currentTimeMillis();
System.out.println("C3P0连接数据库所需要的时 间:"+(end-begin));
// //在我的机子上1000次C3P0连接耗时:656毫秒
}
}
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DBUtilOfC3P0 {
private static ComboPooledDataSource dataSource;
private static DBUtilOfC3P0 instance = null;
public String driver = "oracle.jdbc.driver.OracleDriver";
public String url = "jdbc:oracle:thin:@localhost:1521:orcl";
public String username = "scott";
public String password = "tiger";
private DBUtilOfC3P0() {
dataSource = new ComboPooledDataSource(); // 设置jdbc连接信息
dataSource.setUser(username);
dataSource.setPassword(password);
dataSource.setJdbcUrl(url);
try {
dataSource.setDriverClass(driver);
} catch (PropertyVetoException e) {
e.printStackTrace();
}
// 设置连接池
dataSource.setInitialPoolSize(30);
dataSource.setMaxPoolSize(100);
dataSource.setMinPoolSize(10);
}
// 为了保证单例性,必须使用同步关键字
public synchronized static DBUtilOfC3P0 getInstance() {
if (instance == null)
instance = new DBUtilOfC3P0();
return instance;
}
// 连接必要的信息
public Connection getConnection() throws SQLException { // 使用工厂创建连接
return dataSource.getConnection();
}
//测试
public static void main(String[] args) throws SQLException {
long begin = System.currentTimeMillis();
// 开始时刻
for(int i=0;i<1000;i++){//获得1000次连接
Connection conn = DBUtilOfC3P0.getInstance().getConnection();
conn.close();
}
long end = System.currentTimeMillis();
System.out.println("C3P0连接数据库所需要的时 间:"+(end-begin));
// //在我的机子上1000次C3P0连接耗时:656毫秒
}
}