|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> &amp;&amp; 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> &amp;&amp; statement != <span class="hljs-literal">null</span> &amp;&amp; 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> &amp;&amp; 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> &amp;&amp; statement != <span class="hljs-literal">null</span> &amp;&amp; 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