class="java">
/**
*
*/
package bizcore.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Properties;
import org.logicalcobwebs.proxool.ProxoolException;
import org.logicalcobwebs.proxool.ProxoolFacade;
import bizcore.core.utils.Utils;
/**
* @author ljf
*
*/
public class ConnectionDBPool {
private static ConnectionDBPool pool=null;
private static Properties info = new Properties();
private static String url="";
private final static int databaseConnectionNum = 15;
private final static int maxConnectNum = 100;
private static int checkOut = 0;
private static ArrayList<Connection> connectlist = new ArrayList<Connection>();
private static ArrayList<Statement> stmtList = new ArrayList<Statement>();
private final static String alias = "pool";
private final static String driverClass = "com.mysql.jdbc.Driver";
private final static String driverUrl = "jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=UTF-8";
public static void createDBConnectionPool(){
for (int i = connectlist.size(); i < databaseConnectionNum; i++) {
pool = new ConnectionDBPool();
Connection connobject=null;
connobject = pool.getConnection();
connectlist.add(connobject);
}
}
private ConnectionDBPool(){
try {
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
info.setProperty("proxool.maximum-connection-count", "20");
info.setProperty("proxool.house-keeping-test-sql", "select CURRENT_DATE");
info.setProperty("user", "root");
info.setProperty("password", "root");
url = "proxool." + alias + ":" + driverClass + ":" + driverUrl;
try {
ProxoolFacade.registerConnectionPool(url, info);
} catch (ProxoolException ex) {
ex.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection(){
Connection connection = null;
try {
connection = DriverManager.getConnection(url, info);
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
public synchronized static ConnectionDBPool getInstance(){
if(Utils.isNull(pool)){
pool = new ConnectionDBPool();
}
return pool;
}
}