package cn.kgc;/**
* C3P0连接池工具类,提供了一个规范的连接接口,javax.sql.DataSource接口
* C3P0连接池工具类也定义了一个从连接池中获得连接的方法 get Connection ();*/import com.mchange.v2.c3p0.ComboPooledDataSource;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;/**
* 使用步骤:
* 1.先导入jar包
* 2.在成员变量位置创建一个静态ComboPooledDataSource对象
* 3.在静态代码块中,使用ComboPooledDataSource的对象的 setxxx()方法设置数据库连接:
* 其中包括:注册驱动、jdbcUrl、用户名:root、用户密码root(我的是大写的)
* 4.定义一个静态方法,使用ComboPooledDataSource对象,获得数据库连接Connection
* 5.定义一个释放资源的方法*/
public classC3P0Utils {//2.创建一个ComboPooledDataSource对象
public static ComboPooledDataSource dataSource = newComboPooledDataSource();//3.在静态代码块中使用ComboPooledDataSource对象,的setxxx方法来设置数据库连接
static{try{//注册驱动
dataSource.setDriverClass("com.mysql.jdbc.Driver");//设置URL
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/day10");//设置用户名
dataSource.setUser("root");//设置密码
dataSource.setPassword("ROOT");
}catch(PropertyVetoException e) {
e.printStackTrace();
}
}//定义一个静态方法,通过ComboPooledDataSource的对象,来获得数据库连接Connection对象
public staticConnection getConnection() {try{returndataSource.getConnection();
}catch(SQLException e) {//避免异常时,程序继续运行
throw new RuntimeException("数据库连接失败" +e);
}
}//定义一个方法用来释放资源
public static voidclose(ResultSet rs, Statement stat, Connection conn) {if(rs!=null){try{
rs.close();
}catch(SQLException e) {
e.printStackTrace();
}
}if(stat!=null){try{
stat.close();
}catch(SQLException e) {
e.printStackTrace();
}
}if(conn!=null){try{
conn.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
}
}