此文用于自我巩固与分享,也为了与 “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工具类来简化开发,具体使用步骤也会单独开一篇博文来介绍!