要使用c3p0连接池首先需要下载Jar包
https://mvnrepository.com/artifact/c3p0/c3p0
下载完成后,将他build path到项目中
然后开始写代码
第一种方式:
public static void main(string[] args){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
//创建数据库连接对象
ComboPooledDataSource pool = new ComboPooledDataSource();
try{
pool.SetDriverClass("com.mysql.jdbc.Driver");
pool.setJdbcUrl("jdbc:mysql:///数据库名?characterEncoding=utf-8");
pool.setUser("root");
pool.setPassword("root");
//获取连接对象
conn = pool.getConnection();
String sql = ".....";
ps = conn.prepareStatement(sql);
ps.execute......;
}catch(Execption e){
e.printStackTrace();
}finally{
//这里c3p0对close()方法重写了,使用该方法不会直接关闭释放资源,而是将连接池对象还给了连接池
conn.close();
}
这个方法不被大多数人推荐,因为不够灵活不能机动的改变连接池url和user及password,所以将他们写成了配置文件的方式,来使用
第二种方式:
使用xml配置文件
将上面的这四行代码注释掉
pool.SetDriverClass("com.mysql.jdbc.Driver");
pool.setJdbcUrl("jdbc:mysql:///数据库名?characterEncoding=utf-8");
pool.setUser("root");
pool.setPassword("root");
接下来将以上代码写成配置表
在src目录下(必须在其根目录下),新建:
c3p0-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">
com.mysql.jdbc.Driver
</property>
<property name="jdbcUrl">
jdbc:mysql:///数据库名?characterEncoding=utf-8
</property>
<property name="user">
root
</property>
<property name="password">
root
</property>
</default-config>
</c3p0-config>
第三种方式:
使用properties文件的方式
同样在src根目录下新建文件,名为
c3p0.properties
c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql:///jt_db?characterEncoding=utf-8
c3p0.user=root
c3p0.password=root
以上两个文件在创建
ComboPooledDataSource
对象的时候,会做以下操作(c3p0 的jar包内ComboPooledDataSource的源码)