此文用于自我巩固与分享,也为了与 “JDBC进化史一文” 进行衔接
本文所有用到的jar包都会放在CSDN下载区,方便下载 链接:https://download.csdn.net/download/u013781343/10358284
首先我们来看C3P0连接池的使用
在使用C3P0连接池之前需要引入相关jar包
同时不要忘记,还需要引入C3P0配置文件,相关配置项有兴趣的话可以去看看文档
具体配置内容如下
这样准备工作就做好了,接下来就是上代码的环节,我们可以自己创建一个C3P0工具类方便以后使用
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
* @desc: mysql c3p0连接池使用
* @createTime: 2018年4月18日 下午7:32:42
* @version: v1.0
*/
public class C3P0Utils{
//获得C3P0连接池关键的对象ComboPooledDataSource 构造方法不传递参数使用默认配置连接信息项
private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
//获得连接池数据源
public static DataSource getDataSource(){
return dataSource;
}
//获得连接
public static Connection getConnection(){
Connection conn = null;
try {
conn = dataSource.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
//释放链接
public static void closeResource(Connection conn, Statement sta, ResultSet res){
if (res != null) {
try {
res.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (sta != null) {
try {
sta.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
System.out.println("连接关闭");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
经过测试,正常使用,这只是基础的使用方法。
接下来我们看一看DBCP连接池的使用方法
在使用之前,按照惯例,引入相应的jar包
然后添加properties文件,注意事项如下
文件位置如下
配置内容见下图,注意 图中红框内 用户名和密码的键名必须为 username 与 password 否则DBCP无法获取到正确的信息
接下来就是代码时间了,同时请注意代码中BasicDataSourceFactory类所属包为org.apache.commons.dbcp,别搞错了
DBCP连接池代码
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
/**
*
* @desc: mysql dbcp工具类
* @createTime: 2018年4月19日 下午3:29:15
* @version: v1.0
*/
public class DBCPUtils {
private static DataSource dataSource;
// 静态代码块加载properties文件内容
static {
try {
Properties pro = new Properties();
InputStream in = DBCPUtils.class.getClassLoader().getResourceAsStream("dbconfig.properties");
pro.load(in);
dataSource = BasicDataSourceFactory.createDataSource(pro);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//获得连接
public static Connection getConnection(){
Connection conn = null;
try {
conn = dataSource.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
//释放链接
public static void closeResource(Connection conn, Statement sta, ResultSet res){
if (res != null) {
try {
res.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (sta != null) {
try {
sta.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
System.out.println("连接关闭");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
到此我们连接池的基本使用就完成了,有兴趣的朋友可以去选择自己喜欢的连接池使用,同时我们也可以发现原生jdbc要写的代码还是有点多,那么为了更进一步简化开发过程,我们可以使用DBUtils工具类来简化开发,具体使用步骤也会单独开一篇博文来介绍!