package com.jdbc.utils;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3p0 {
private ComboPooledDataSource cpds;
private static C3p0 c3p0;
static {
c3p0=new C3p0();
}
/**
* 构造方法初始化 配置文件
*/
public C3p0() {
cpds=new ComboPooledDataSource();
//加载配置文件
Properties props = new Properties();
try {
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties"));
cpds.setDriverClass(props.getProperty("mysqlDriver"));
cpds.setJdbcUrl(props.getProperty("mysqlUrl"));
cpds.setUser(props.getProperty("mysqlUser"));
cpds.setPassword(props.getProperty("mysqlPassword"));
cpds.setMaxPoolSize(Integer.parseInt(props.getProperty("MaxPoolSize")));
cpds.setMinPoolSize(Integer.parseInt(props.getProperty("MinPoolSize")));
cpds.setInitialPoolSize(Integer.parseInt(props.getProperty("InitialPoolSize")));
cpds.setMaxStatements(Integer.parseInt(props.getProperty("MaxStatements")));
cpds.setMaxIdleTime(Integer.parseInt(props.getProperty("MaxIdleTime")));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 返回连接池的实例
* @return
*/
public static C3p0 getInstance(){
return c3p0;
}
public Connection getConnection(){
Connection conn = null;
try {
conn = cpds.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
Connection connection = C3p0.c3p0.getConnection();
System.out.println("已经连接成功");
try {
System.out.println(connection.getCatalog());
} catch (SQLException e) {
e.printStackTrace();
}
}
}
db.properties文件
mysqlDriver=com.mysql.jdbc.Driver
mysqlUrl=jdbc\:mysql\://localhost\:3306/test
mysqlUser=root
mysqlPassword=123456
MaxPoolSize = 20
MinPoolSize = 2
InitialPoolSize = 5
MaxStatements = 30