O que fica mais correto(ou o que é correto)em acesso à banco

Galera, gostaria da opinião de vcs!
O que fica mais correto se tratando de operaçoes atomicas…
por exemplo:
tenho um form, nesse form eu passo os valores para que uma classe faça as operações no banco…
ao fazer essas operações qual o procedimento correto:
a) Conectar - fazer a operacao - fechar Conexao
b) Assim que abrir o programa dar um instanceof para verificar se existe Conexao ativa, caso não Conectar e passar um argumento do Tipo Conexao para as operacoes que acessam o banco…por exemplo:

Salvar(Conexao con, Colaborador colab) 

[]'s

Manter conexões abertas é muito caro. Se conseguir juntar todos os procedimentos daquela requisição num batch só, ótimo. Caso contrário feche-a assim que conseguir o que precisa.

se vc tem duvida se a conexao esta aberta ou nao, usa uma padrão Singleton para manter somente uma conexao ativa.

Existe o conceito de “Connection Pooling” que serve exatamente para isso.
A implementação de “Connection Pooling” não é muito simples, mas pode ser encontrada normalmente em EJB containers, como o JBoss ou o Sun Java Application Server, ou o J2EE SDK 1.4, e em alguns web containers, como o Apache Tomcat.
Se você está fazendo uma aplicação “do zero”, ou seja, sem web container ou EJB container, você pode usar a DBCP, http://jakarta.apache.org/commons/dbcp/
O uso do “Connection Pooling” é bastante fácil, na verdade se fizer as coisas corretamente é até mais fácil que se conectar ao banco diretamente.
Como funciona: você configura a sua conexão com a base (usuário, senha, nome do banco, driver etc.) como um “DataSource”. Quando você precisa conectar-se a esse banco, em vez de você criar diretamente a conexão, usa o DataSource para lhe retornar (na verdade “emprestar”)uma conexão. Essa conexão na verdade vem de um “pool” de conexões que estão já abertas e prontas para uso. Use-a e feche-a (na verdade você está “devolvendo a conexão”) o mais rapidamente possível, para que outras partes de sua aplicação possam também usar as conexões.

Wonder, essa não é uma boa prática, como eu descobri lendo estes tópicos:
http://www.guj.com.br/forum/viewtopic.php?t=2719
http://www.guj.com.br/forum/viewtopic.php?t=14615

E uma grande discursao isso, mas concordo com vc q essa nao e uma boa pratica :wink: