Galera, estou com uma dúvida cruel.
Criei essa classe para me fornecer uma funcinalidade muito util: Conexões ao Banco de Dados.
Pensei em fazer essa classe pq toda hora criamos aplicações q conectam ao BD. Assim diminuo meu trabalho! :wink:
O Problema é q não sei se estou fazendo de maneira correta.
O q vcs acham dessa forma q estou utilizando?
Como vcs costumam fazer?
public abstract class UtilBDConnection {
/**
* Pegar conexões por DataSource
*/
public static Connection getConnectionByDataSource( String myDS ) throws Exception {
Context context = new InitialContext();
DataSource dataSource = (DataSource)context.lookup( myDS );
return dataSource.getConnection();
}
/**
* Pegar conexões por parâmetros
*/
public static Connection getConnectionByParameters( String url, String user, String password, String DRIVER ) throws Exception {
Class driverClass = Class.forName( DRIVER );
return DriverManager.getConnection( url, user, password );
}
/**
* Fechar conexão
*/
public static void closeConnection( Connection connection, Statement statement, ResultSet resultSet ) throws Exception {
if( resultSet != null ) {
resultSet.close();
resultSet = null;
}
if( statement != null ) {
statement.close();
statement = null;
}
if( connection != null ) {
connection.close();
connection = null;
}
}
}
public List list() throws Exception {
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
List list = new ArrayList();
try {
connection = UtilBDConnection.getConnectionByDataSource( "java:comp/env/jdbc/CMMySQL" );
statement = connection.createStatement();
resultSet = statement.executeQuery( "SELECT * FROM test" );
while( resultSet.next() ) {
list.add( resultSet.getString(1) );
}
} finally {
UtilBDConnection.closeConnection( connection, statement, resultSet );
}
return list;
}
Valeu!