c3p0连接池使用方法

maven下载jar

 
            com.mchange
            c3p0
            0.9.5.2
 

新建JdbcUtil

package api.utils;

import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;


/**
 * @author Paul.Huang
 * @data 2017/12/9 17:52
 * @Description
 */
public class JdbcUtil {
    private static DataSource Reader;   //读库
    private static DataSource Write;    //写库

    static {
        try {
            //初始化c3p0连接池
            ComboPooledDataSource readercpds = new ComboPooledDataSource();
            readercpds.setDriverClass("com.mysql.jdbc.Driver");
            readercpds.setJdbcUrl("jdbc:mysql://localhost/data_center?characterEncoding=UTF-8");
            readercpds.setUser("root");
            readercpds.setPassword("Root123@");
            readercpds.setInitialPoolSize(5);
            readercpds.setMaxPoolSize(20);
            Reader = readercpds;
            
            ComboPooledDataSource writecpds = new ComboPooledDataSource();
            writecpds.setDriverClass("com.mysql.jdbc.Driver");
            writecpds.setJdbcUrl("jdbc:mysql://localhost/data_center?characterEncoding=UTF-8");
            writecpds.setUser("root");
            writecpds.setPassword("Root123@");
            writecpds.setInitialPoolSize(5);
            writecpds.setMaxPoolSize(20);
            Write = writecpds;
        } catch (PropertyVetoException e) {
            throw new ExceptionInInitializerError("属性不匹配的错误");
        }
    }

    /*
     * 写库数据源
     */
    public static DataSource readerDataSource() {
        return Reader;
    }

    /*
     * 读库数据源
     */
    public static DataSource writeDataSource() {
        return Write;
    }

    /*
     * 写库当前连接
     */
    public static Connection writeConnection() throws SQLException {
        return Write.getConnection();
    }

    /*
     * 读库当前连接
     */
    public static Connection readerConnection() throws SQLException {
        return Reader.getConnection();
    }
}

使用方法

 @Test
    public void select() throws SQLException {
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;
        try {
            connection = JdbcUtil.readerConnection();
            statement = connection.createStatement();
            resultSet = statement.executeQuery("select * from data_control_price LIMIT 10 ");
            while (resultSet.next()) {
                System.out.println(resultSet.getString("merchant_code"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if (resultSet != null) try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            if (statement != null) try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            if (connection != null) try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
不过我在把数据库信息写在xml的时候, c3p0读不出来, 查询下好像已经停止更新了, 所以本人打算把项目的数据库连接池换成国产阿里巴巴的druid

你可能感兴趣的:(c3p0连接池使用方法)