Olá,
estou tentando implementaar um bean que se ocupa em se conectar a um banco de dados utilizando um connectionPool.
Gostaria de saber se estou implementando corretamente esta classe, ou se vcs tem dicas, pois suspeito que esteja avendo 'leak' de conexões ou outros problemas relacionados a esta classe.
Se puderem dar suas opiniões sobre este código, ou indicar classes de connection pool 'free' que sejam faceis de implementar e usar (sem muita complicação), agradeço.
package netos;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import net.sourceforge.esw.util.database.DBConnectionPoolManager;
import net.sourceforge.esw.util.database.IDBConnectionPool;
public class BD {
/*****************************************
**RETORNA UMA CONEXAO DO POOL**
******************************************/
////PLUGIN
private static String host = "server";
private static String user = "user";
private static String pass = "pass";
public static Connection getConnection() {
Connection oConnection = null;
try {
/*teste pool*/
DBConnectionPoolManager.initializeDriver( "org.postgresql.Driver" );
IDBConnectionPool connPool = DBConnectionPoolManager.getInstance().getPool(host,user);
connPool.setDatabasePassword(pass );
connPool.setMaxSize(15);
connPool.setPreferredSize(3);
oConnection = connPool.getDBConnection();
} catch (SQLException se) { }
return oConnection;
}
/***********************************
**LIBERA A CONEXAO DO POOL**
************************************/
public static void releaseConnection(Connection oConnection) {
try {
IDBConnectionPool connPool = DBConnectionPoolManager.getInstance().getPool(host,user);
connPool.releaseDBConnection(oConnection);
oConnection.close();
oConnection = null;
} catch(Exception dataSourceConnectionException) { }
}
/***********************************
**OPERAÇÕES NO BANCO **
************************************/
/**********************************
**CONSULTAS **
***********************************/
public static ResultSet pesquisaSet(String query) {
Connection oConnection = null;
ResultSet oResultset = null;
PreparedStatement oPstatment = null;
String oSql = query;
try {
oConnection = getConnection();
oPstatment = oConnection.prepareStatement(oSql);
oResultset = oPstatment.executeQuery();
} catch (Exception dataSourceConnectionException) {
} finally {
releaseConnection(oConnection);
}
return oResultset;
}
public static String pesquisaStr(String query) {
String output = " ";
Connection oConnection = null;
ResultSet oResultset = null;
PreparedStatement oPstatment = null;
String oSql = query;
try {
oConnection = getConnection();
oPstatment = oConnection.prepareStatement(oSql);
oResultset = oPstatment.executeQuery();
oResultset.next();
output=oResultset.getString(1);
oResultset.close();
oPstatment.close();
oConnection.close();
oPstatment = null;
} catch (Exception dataSourceConnectionException) {
} finally {
releaseConnection(oConnection);
oConnection = null;
}
return output;
}
}