Boa tarde a todos, tenho uma duvida, gostaria que se possivel os mas avançados aqui me sanasse a mesma.
Tenho uma aplicação onde usando apenas JDBC, e em todos os metodos após realizar a operação desejada eu fecho a conexão com o banco. Mas eu andei fazendo algumas alterações que talvez não seja mas preciso fechar-las. Pois passei a usar Datasource para poder criar a conexão. Será se o tomcat gerencia o fechamento das conexões por conta dele mesmo? Vou colocar aqui um exemplo do DAO.
public class EntidadeDAOImpl implements EntidadeDAO {
private Connection connection;
private PreparedStatement pstmt;
private ResultSet rs;
public EntidadeDAOImpl() {
if(this.connection == null) {
try {
this.connection = ConnectionFactory.getInstance().getConnection();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public List<MinhaEntidade> listarTudo(){
try {
this.pstmt = this.connection.prepareStatement("SQL");
this.rs = this.pstmt.executeQuery();
.....
} catch (Exception e) {
throw new Exception("Erro: "+e);
}finally {
// Aqui fica a minha dúvida
ConnectionFactory.closeConnection(this.connection, this.pstmt, this.rs);
}
}
}
Metodo de Conexão:
public Connection getConnection() throws Exception {
try {
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource dataSource = (DataSource)envContext.lookup("jdbc/hsql");
if (this.connection == null || this.connection.isClosed()) {
this.connection = dataSource.getConnection();
}
} catch (Exception e) {
throw new Exception(e.getMessage());
}
return connection;
}