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());
|
}
|
}
|