こんにちは、データベース接続プールを作成しようとしています。以下の方法は正しいですか。
public Connection getMySQLConnection(){
Connection conn = null;
String url = "jdbc:mysql://" + Config.getInstance().getProperty("DB_SERVER_HOST") + ":" + Config.getInstance().getProperty("DB_SERVER_PORT") + "/" + Config.getInstance().getProperty("DB_NAME");
try {
poolConn = new DbPool("com.mysql.jdbc.Driver", url, Config.getInstance().getProperty("DB_USERNAME"), Config.getInstance().getProperty("DB_PASSWORD"));
} catch (SQLException e) {
LOGGER.error("error while creating the connection pool : "+e);
}
try {
conn = poolConn.getConnection();
} catch (SQLException e) {
LOGGER.error("Error while getting connection from db pool"+e);
}
return conn;
}
これは、私のカスタム DbPool クラスのコンストラクターです。上記のコードでは、このクラスのオブジェクトを作成しています。
public DbPool(String classname, String url, String username,
String password) throws java.sql.SQLException {
try {
Class.forName(classname).newInstance();
} catch (Exception e) { // Catch any exception from JDBC driver failure
LOGGER.error("Failed to load JDBC driver: "+classname
+", Exception: "+e);
}
maxConnections = defaultMaxConnections;
timeout = defaultTimeout;
if (DEBUG) {
maxConnections = debugDefaultMaxConnections;
timeout = debugDefaultTimeout;
}
totalConnections = 0;
freeList = new java.util.LinkedList<DBPoolConnection>();
busy = new java.util.HashMap<Connection, DBPoolConnection>();
this.url = url;
connectionProperties = new java.util.Properties();
if (username == null) LOGGER.info("ERROR: Null JDBC username");
else connectionProperties.setProperty("user",username);
if (password == null) LOGGER.info("ERROR: Null JDBC password");
else connectionProperties.setProperty("password",password);
}