package com.dec.fbs9100; import java.beans.PropertyVetoException; import java.sql.Connection; import java.sql.SQLException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.mchange.v2.c3p0.ComboPooledDataSource; public class MysqlConnPool { private ComboPooledDataSource mysql_ds;// = new ComboPooledDataSource(); private int mSqlPort = 3360; public Logger logger = null; public MysqlConnPool(String server_ip, int port, int conncount_max) { logger = LogManager.getLogger(this.getClass()); try { logger.info("sqlserver_ip:" + server_ip + ", port:" + port + ", conn_max:" + conncount_max); mysql_ds = new ComboPooledDataSource(); init(server_ip, port, conncount_max); } catch (PropertyVetoException e) { logger.error(e.toString(), e); } } public void init(String server_ip, int port, int conncount_max) throws PropertyVetoException { mSqlPort = port; mysql_ds.setTestConnectionOnCheckout(false); mysql_ds.setDriverClass("com.mysql.jdbc.Driver"); mysql_ds.setJdbcUrl("jdbc:mysql://" + server_ip + ":" + mSqlPort + "/db_app_sys"); mysql_ds.setUser("root"); mysql_ds.setPassword("lmx8688139"); mysql_ds.setMaxPoolSize(conncount_max); mysql_ds.setMinPoolSize(2); mysql_ds.setAcquireIncrement(4); mysql_ds.setMaxIdleTime(120); mysql_ds.setNumHelperThreads(4); mysql_ds.setBreakAfterAcquireFailure(true); mysql_ds.setIdleConnectionTestPeriod(60); } public Connection getConn() { Connection con = null; try { con = mysql_ds.getConnection(); } catch (SQLException e) { //e.printStackTrace(); logger.error(e.toString(), e); } return con; } public int getSqlConnPort() { return mSqlPort; } public int getMaxPoolSize() { return (mysql_ds.getMaxPoolSize()); } public void setMaxPoolSize(int size) { mysql_ds.setMaxPoolSize(size); } public static void main(String[] args) { MysqlConnPool pool = new MysqlConnPool("127.0.0.1", 3360, 50); System.out.println(pool.getConn()); } }