美文网首页Java
数据库连接池

数据库连接池

作者: Xr丶_c967 | 来源:发表于2017-12-04 11:37 被阅读0次

    package com.gb.util;

    import java.beans.PropertyVetoException;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.IOException;

    import java.io.InputStream;

    import java.sql.Connection;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    import java.sql.Statement;

    import java.util.Properties;

    import com.mchange.v2.c3p0.ComboPooledDataSource;

    public class ConnectionPoolProp {

    private static ComboPooledDataSource comboPooledDataSource;

    public static final void initDBSource() {

    Properties properties = new Properties();

    try {

    File file = new File(ConnectionPoolProp.class.getResource("/").getFile().toString() + "dbs.properties");

    System.out.println(ConnectionPoolProp.class.getResource("/").getFile());

    InputStream inputStream = new FileInputStream(file);

    properties.load(inputStream);

    } catch (IOException e) {

    e.printStackTrace();

    }

    comboPooledDataSource = new ComboPooledDataSource();

    try {

    comboPooledDataSource.setDriverClass(properties.getProperty("driver"));

    } catch (PropertyVetoException e) {

    e.printStackTrace();

    }

    comboPooledDataSource.setJdbcUrl(properties.getProperty("url"));

    comboPooledDataSource.setUser(properties.getProperty("user"));

    comboPooledDataSource.setPassword(properties.getProperty("password"));

    comboPooledDataSource.setMinPoolSize(Integer.parseInt(properties.getProperty("c3p0.minPoolSize")));

    comboPooledDataSource.setMaxPoolSize(Integer.parseInt(properties.getProperty("c3p0.maxPoolSize")));

    comboPooledDataSource.setInitialPoolSize(Integer.parseInt(properties.getProperty("c3p0.initPoolSize")));

    comboPooledDataSource.setAcquireIncrement(Integer.parseInt(properties.getProperty("c3p0.acquireIncrement")));

    comboPooledDataSource.setMaxStatements(Integer.parseInt(properties.getProperty("c3p0.maxStatements").trim()));

    comboPooledDataSource.setMaxIdleTime(Integer.parseInt(properties.getProperty("c3p0.maxIdleTime")));

    }

    public static synchronized Connection getConnection() {

    Connection conn = null;

    try {

    conn = comboPooledDataSource.getConnection();

    } catch (SQLException e) {

    e.printStackTrace();

    }

    return conn;

    }

    public static void closeAll(ResultSet rs, Statement stmt, Connection conn) {

    close(rs);

    close(stmt);

    close(conn);

    }

    public static void close(AutoCloseable close) {

    if (null != close) {

    try {

    close.close();

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    public static void colsePool() {

    if (null != comboPooledDataSource) {

    comboPooledDataSource.close();

    }

    }

    }

    相关文章

      网友评论

        本文标题:数据库连接池

        本文链接:https://www.haomeiwen.com/subject/fpdrvxtx.html