<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://ip地址/数据库</property>
<property name="user">用户名</property>
<property name="password">密码</property>
</default-config>
</c3p0-config>
/*
* 创建C3P0连接池工具类:用来获取数据库连接对象,xml版本
*
* 连接池规范接口:
* javax.sql.DataSource接口
* 获取数据库连接的方法
* Connection getConnection() 尝试建立与此 DataSource 对象所表示的数据源的连接。
*
* C3P0连接池,实现类sun公司提供的规范接口
* com.mchange.v2.c3p0.ComboPooledDataSource类 implments javax.sql.DataSource
* 重写了接口中的方法getConnection
*
* 使用步骤:
* 1.成员位置创建一个ComboPooledDataSource对象
* 2.在src目录下创建一个xml,名称叫c3p0-config.xml,里边配置元素名称必须按照要求编写;
* C3P0连接池会自动解析xml文件,获取里边的连接信息,给ComboPooledDataSource设置连接信息
* 3.创建一个静态方法,通过ComboPooledDataSource中提供的方法getConnection获取数据库连接对象并返回
* 4.创建一个静态方法用于资源释放
*/
public class C3P0UtilsXML {
//1.成员位置创建一个ComboPooledDataSource对象
private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
//创建一个静态方法,返回连接池的实现类对象,给QueryRunner使用
public static DataSource getDataSource(){
return dataSource;
}
//3.创建一个静态方法,通过ComboPooledDataSource中提供的方法getConnection获取数据库连接对象并返回
public static Connection getConnection(){
try {
return dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
//把编译异常转换为运行时异常
throw new RuntimeException("数据库连接失败!");
}
}
//4.创建一个静态方法,用于资源释放
public static void close(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();//不是关闭conn,而是把conn归还到连接池
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}