|NO.Z.00098|——————————|BigDataEnd|——|Java&MySQL.数据库连接池和DBUtils.V07|——|MySQL.v07|C3P0连接池工具类编写|
一、编写 C3P0 工具类
### --- C3P0 提供的核心工具类, ComboPooledDataSource , 如果想使用连接池, 就必须创建该类的对象
——> new ComboPooledDataSource(); 使用 默认配置
——> new ComboPooledDataSource("mysql"); 使用命名配置
public class C3P0Utils {
//1. 创建连接池对象 C3P0 对 DataSource 接口的实现类
// 使用的配置是 配置文件中的默认配置
//public static ComboPooledDataSource dataSource = new ComboPooledDataSource();
<span class="hljs-comment">//使用指定的配置</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-type">ComboPooledDataSource</span> <span class="hljs-variable">dataSource</span> <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> <span class="hljs-title class_">ComboPooledDataSource</span>(<span class="hljs-string">"mysql"</span>);
<span class="hljs-comment">//获取连接的方法</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> Connection <span class="hljs-title function_">getConnection</span><span class="hljs-params">()</span> <span class="hljs-keyword">throws</span> SQLException {
<span class="hljs-keyword">return</span> dataSource.getConnection();
}
<span class="hljs-comment">//释放资源</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">close</span><span class="hljs-params">(Connection con, Statement statement)</span>{
<span class="hljs-keyword">if</span>(con != <span class="hljs-literal">null</span> && statement != <span class="hljs-literal">null</span>){
<span class="hljs-keyword">try</span> {
statement.close();
<span class="hljs-comment">//归还连接</span>
con.close();
} <span class="hljs-keyword">catch</span> (SQLException e) {
e.printStackTrace();
}
}
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">close</span><span class="hljs-params">(Connection con, Statement statement, ResultSet resultSet)</span>{
<span class="hljs-keyword">if</span>(con != <span class="hljs-literal">null</span> && statement != <span class="hljs-literal">null</span> && resultSet != <span class="hljs-literal">null</span>){
<span class="hljs-keyword">try</span> {
resultSet.close();
statement.close();
<span class="hljs-comment">//归还连接</span>
con.close();
} <span class="hljs-keyword">catch</span> (SQLException e) {
e.printStackTrace();
}
}
}
}
二、sql 语句
package com.yanqi.utils;
<span class="hljs-keyword">import</span> com.mchange.v2.c3p0.ComboPooledDataSource;
<span class="hljs-keyword">import</span> org.apache.commons.dbutils.QueryRunner;
<span class="hljs-keyword">import</span> java.sql.Connection;
<span class="hljs-keyword">import</span> java.sql.ResultSet;
<span class="hljs-keyword">import</span> java.sql.SQLException;
<span class="hljs-keyword">import</span> java.sql.Statement;
public class C3P0Utils {
<span class="hljs-comment">//1.创建连接池对象 C3P0对DataSource接口的实现类</span>
<span class="hljs-comment">//使用的配置是 配置文件中的默认配置</span>
<span class="hljs-comment">//public static ComboPooledDataSource dataSource = new ComboPooledDataSource();</span>
<span class="hljs-comment">//使用指定的配置</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-type">ComboPooledDataSource</span> <span class="hljs-variable">dataSource</span> <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> <span class="hljs-title class_">ComboPooledDataSource</span>(<span class="hljs-string">"mysql"</span>);
<span class="hljs-comment">//获取连接的方法</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> Connection <span class="hljs-title function_">getConnection</span><span class="hljs-params">()</span> <span class="hljs-keyword">throws</span> SQLException {
<span class="hljs-keyword">return</span> dataSource.getConnection();
}
<span class="hljs-comment">//释放资源</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">close</span><span class="hljs-params">(Connection con, Statement statement)</span>{
<span class="hljs-keyword">if</span>(con != <span class="hljs-literal">null</span> && statement != <span class="hljs-literal">null</span>){
<span class="hljs-keyword">try</span> {
statement.close();
<span class="hljs-comment">//归还连接</span>
con.close();
} <span class="hljs-keyword">catch</span> (SQLException e) {
e.printStackTrace();
}
}
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">close</span><span class="hljs-params">(Connection con, Statement statement, ResultSet resultSet)</span>{
<span class="hljs-keyword">if</span>(con != <span class="hljs-literal">null</span> && statement != <span class="hljs-literal">null</span> && resultSet != <span class="hljs-literal">null</span>){
<span class="hljs-keyword">try</span> {
resultSet.close();
statement.close();
<span class="hljs-comment">//归还连接</span>
con.close();
} <span class="hljs-keyword">catch</span> (SQLException e) {
e.printStackTrace();
}
}
}
}
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor