Pessoal quando vou persistir alguma informação no banco sempre coloco as instruções dentro de try…catch. Será que posso encerrar a conexao e o ResultSet, por exeplo dentro do finally, já que ele é executado e alguer maneira?
OBS: Logicamente antes de fechar a conexao no finally e verifico se ele está fechada.
Ou então, use o spring. Não só evita o try e catch, melhorando a legibilidade do código, como também implementa algumas boas práticas de BD que deixamos esquecidas.
Site oficial:
Alexandre_Vilas_Boas
juloko666:
Será que posso encerrar a conexao e o ResultSet, por exeplo dentro do finally, já que ele é executado e alguer maneira?
Humm, tenho minhas dúvidas…
Já ouvi alguns gurus dizendo que essa abordagem não é das melhores.
Vou ver se encontro algo concreto a esse respeito e te informo.
[]'s
clodoaldoaleixo
Eu aprendi assim também…encerrando tudo no finally, mas já ouvi falar de alguns frameworks que tem um tratamento diferente…enfim, vale uma pesquisa.
ViniGodoy
Você tem que usar um close() num finally. O problema é que o close também gera SQLException.
O código então fica mega poluído. Você tem que colocar um try…finally dentro de um try…catch. O try…finally garante que o close será dado, e o try…catch pega a SQLException.
Você pode apelar para uma framework de persistência como o Hibernate, ou por um outro que te ajude a lidar com isso, como o Spring. Como uso aplicação no Swing, tive que recorrer ao último e estou muito satisfeito com os resultados.
As classes do spring não lançam SQLException, lançam exceções Runtime no lugar. Elas também não exigem que você feche nada. Códigos de 20, 30 linhas ficam no máximo com 6 ou 7 linhas…
ystaile
Pow, eu acho que se uma coisa simples são uso de padroes ou framework pode colocar o close() no finally mesmo.
LPJava
pelo conhecimento que tenho, pode sim o bloco finally ele é executado independente então você poe la seu codigo dentro do bloco que ele será fechado mesmo se ocorrer uma exceção ou nao.