Conexões com o BD

Bom dia pessoal!

Eu estou desenvolvendo um web service e surgiu uma dúvida:

Quando eu devo abrir e fechar uma conexão com o banco de dados? No web service tem vários métodos que consultam o banco. Eu devo abrir uma conexão, fazer a consulta e logo em seguida fechar a conexão ou tem outro jeito melhor de fazer esse processo?

Caso esse seja o melhor, não iria ficar ruim se minha aplicação fizesse muitas requisições para esse web service?

Desde já agradeço!

O ideal é sempre trabalhar com recursos fechados. Portanto, abra e feche a conexão.

Alguns recursos são muito pesados para se abrir e fechar o tempo todo (é o caso das conexões).
Nesse caso, o ideal é usar uma biblioteca que gerencie isso para você de forma transparente, como a DBCP ou a C3P0.

Outra coisa, quando postar dúvidas no fórum, deixe as tags informativas como [Resolvido] ou [WebServices] para coisas úteis, complementares ao título.
Não destaque tanto coisas óbvias como [Dúvida], [Ajuda], [Socorro], pois isso não ajuda em nada quem está lendo a lista de tópicos disponíveis.

se usar um servidor de aplicações J2ee como o glasfish e a nova spec com CDI, pode deixar para o container controlar isto pra vc, eu mesmo faço assim nos meus WS.