Mantendo uma
Connection
aberto para sempre é uma péssima ideia. Ele não tem um tempo de vida infinito, seu aplicativo pode travar sempre que o banco de dados expirar a conexão e fechá-la. A prática recomendada é adquirir e fechar Connection
, Statement
e ResultSet
no mais curto escopo possível para evitar vazamentos de recursos e possíveis falhas de aplicativos causadas por vazamentos e tempos limite. Como conectar o banco de dados é uma tarefa cara, você deve considerar o uso de um pool de conexões para melhorar o desempenho da conexão. Um applicationserver/servletcontainer decente geralmente já fornece um recurso de pool de conexão no sabor de um JNDI
DataSource
. Consulte sua documentação para obter detalhes sobre como criá-lo. No caso de, por exemplo, o Tomcat, você pode encontrá-lo aqui. Mesmo ao usar um pool de conexões, você ainda precisa escrever o código JDBC adequado:adquira e fechar todos os recursos no menor escopo possível. O pool de conexões, por sua vez, se preocupará em realmente fechar a conexão ou apenas liberá-la de volta ao pool para reutilização posterior.
Você pode obter mais alguns insights deste artigo sobre como fazer os fundamentos do JDBC da maneira correta. Como alternativa completamente diferente, aprenda EJB e JPA. Ele irá abstrair todo o clichê JDBC para você em oneliners.
Espero que isto ajude.
Veja também:
- É seguro usar uma instância java.sql.Connection estática em um sistema multithread?
- Estou usando o pool de conexões JDBC?
- Como devo me conectar ao banco de dados / fonte de dados JDBC em um aplicativo baseado em servlet?
- Quando é necessário ou conveniente usar Spring ou EJB3 ou todos eles juntos?