Estou desenvolvendo um software desktop em java, tenho a seguinte dúvida:
Como eu devo fazer a conexão com o BD?
Pois, tenho várias “telas” de cadastro, tipo cadastro de cliente, de produtos, etc, se eu for instanciar uma suposta classe “conexao” em cada uma destas telas (JFrame) terei diversas conexões com o banco ou ficarei abrindo e fechando conexões, o que não me parece correto. O que eu acho certo é, ao iniciar o programa, instanciar uma conexão e depois utilizar somente esta, mas não estou conseguindo fazer isto, alguém pode me ajudar?
Amigo,
A regra básica é manter a conexão aberta somente pelo tempo que vc precisa dela. Vc só deverá abrir uma conexão imediatamente antes de acessar o banco de dados, e fechá-la assim que terminar de acessar o banco de dados.
Tome cuidado com qualquer código que não seja relacionado ao banco de dados e que seja executado enquanto a conexão estiver aberta. As conexões mantêm abertos recursos valiosos para o banco de dados, consomem memória e podem bloquear dados, o que faz com que outras pesquisas se tornem mais lentas. Por isso, é melhor abrir as conexões mais tarde e fechá-las o mais cedo possível.
Isso q estou falando são boas práticas, fica a seu critério trabalhar assim ou não … isso tb vai depender da demanda que vc terá de acesso ao BD. Quer dizer que se você tiver baixa demanda, não verá diferença em performace, mas se a demanda for alta, ai sim isso torna-se significativo no desempenho de acesso ao BD.
E vc vai precisar instanciar a classe de conexão … ou criar um método de conexão em cada classe que fará acesso.
Espero ter ajudado …
Cara, ajudou muito, a idéia que eu tinha era equivocada, postei isto aqui e em outros foruns também, todos falaram basicamente isso que vc explicou.
No meu caso específico o BD não teria problemas de desempenho, mas é sempre bom seguir boas práticas.
Valew