天天看点

C3P0 示例代码C3P0 示例代码

C3P0 示例代码

这是一个连接SQL Server的C3P0的配置过程

代码块

import com.mchange.v2.c3p0.ComboPooledDataSource;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * Created by dan on 2015/12/2.
 */
public class C3P0JdbcUtil {
    private static ComboPooledDataSource ds = null;

    static {
        try{
            ds = new ComboPooledDataSource("SQLServer");
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    public static Connection getConnection() throws SQLException{
        return ds.getConnection();
    }

    public static void release(Connection conn, Statement st, ResultSet rs){
        if (rs != null){
            try{
                rs.close();
            }catch(Exception e){
                e.printStackTrace();
            }
        }
        if (st != null){
            try{
                st.close();
            }catch(Exception e){
                e.printStackTrace();
            }
        }
        if (conn != null){
            try{
                conn.close();
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }
}
           

需要在配置文件中指明连接的参数,文件的名字必须是c3p0-config.xml:

<c3p0-config>

    <default-config>
        <property name="driverClass">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        <property name="jdbcUrl">jdbc:sqlserver://127.0.0.1:1433</property>
        <property name="user">stu</property>
        <property name="password">123</property>

        <property name="acquireIncrement">5</property>
        <property name="initialPoolSize">10</property>
        <property name="maxPoolSize">20</property>
    </default-config>

    <named-config name="SQLServer">
        <property name="driverClass">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        <property name="jdbcUrl">jdbc:sqlserver://127.0.0.1:1433</property>
        <property name="user">stu</property>
        <property name="password">123</property>

        <property name="acquireIncrement">5</property>
        <property name="initialPoolSize">10</property>
        <property name="maxPoolSize">20</property>
    </named-config>


</c3p0-config>
           

在xml中有一个默认的配置,有一个指定的配置,name属性可被java程序用来绑定具体的数据库配置:

new ComboPooledDataSource("SQLServer");
           

注意:使用上述java代码的时候,c3p0-config.xml必须直接在src下方,而不是调用代码的包中。