单例模式设置mysql数据库连接池

package com.nbugs.config;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public final class DbConnectConfig {

    private static ComboPooledDataSource dataSource;

    static {
        dataSource = new ComboPooledDataSource();
        //用户名
        dataSource.setUser(JdbcPropertiesConfig.getUSERNAME());
        //密码
        dataSource.setPassword(JdbcPropertiesConfig.getPASSWORD());
        //数据库地址
        dataSource.setJdbcUrl(JdbcPropertiesConfig.getDATABASEURL());
        try {
            dataSource.setDriverClass(JdbcPropertiesConfig.getDRIVERCLASSNAME());
        } catch (PropertyVetoException e) {
            e.printStackTrace();
        }
        //初始化连接数
        dataSource.setInitialPoolSize(JdbcPropertiesConfig.getINITIALPOOLSIZE());
        //最小连接数
        dataSource.setMinPoolSize(JdbcPropertiesConfig.getMINPOOLSIZE());
        //最大连接数
        dataSource.setMaxPoolSize(JdbcPropertiesConfig.getMAXPOOLSIZE());
        //最长等待时间
        dataSource.setMaxStatements(JdbcPropertiesConfig.getMAXSTATEMENTS());
        //最大空闲时间,单位毫秒
        dataSource.setMaxIdleTime(JdbcPropertiesConfig.getMAXIDLETIME());
        dataSource.setCheckoutTimeout(5000);
        dataSource.setUnreturnedConnectionTimeout(20);
    }

    public synchronized static final Connection getConnection() {
        Connection conn = null;
        try {
            conn = dataSource.getConnection();
        } catch (SQLException e) {
            System.out.println("\r\n数据库连接异常");
            e.printStackTrace();
        }
        return conn;
    }

    public static void closeConnect(PreparedStatement pstmt, ResultSet rs, Connection conn) {
        try {
            if (rs != null) {
                rs.close();
            }
            if (pstmt != null) {
                pstmt.close();
            }
            if (null != conn) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }
}

 


版权声明:本文为sade1231原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。