Conexão ao banco

Estou desenvolvendo uma aplicação web que realiza várias consultas a um banco de dados usando servlets. Porém a cada vez que chamo uma servlet eu faço uma conexão ao banco, o que acaba derrubando a minha aplicação. Há alguma forma de verificar se já uma conexão feita, utilizar ? Como faço ?

tem um geito bem facinho… deve funcionar tb para servelets…

public class ... {
   ...
   private static Connection con = null;
   ...

   private static Connection getCon() throws SQLException{
      if (con == null)
         con = DriveManager.getConnection();
      return con;
   }
   ...
}

bom ai ele só vai criar uma vez a conexão…
pois ela é static…
caso naum queria tratar a Exception fora… faça o try catch dentro do IF…

boa sorte… espero ter ajudado…

c naum entendeu… posta ai… q nois debate +

Isso faz o metodo que rtetorna o con.Lembre-se de fechar a concexão sempre ao termino das consultas no banco

con.close();
statement.close();

Porque se não fechar a concexão , o servidor pode ficar sobrecarregado , com muitos acessos ao BD

[quote=“FelipeSS_2”]Isso faz o metodo que rtetorna o con.Lembre-se de fechar a concexão sempre ao termino das consultas no banco

con.close();
statement.close();

Porque se não fechar a concexão , o servidor pode ficar sobrecarregado , com muitos acessos ao BD[/quote]

mas se a intenção dele é manter a conexão?

isso naum faria com que a conexão fosse perdida?

A é verdade , se é etática , e a intenção é manter a connexão aaberta, não pode mesmo fechar não.Só o statement mesmo!!!

é concordo… o statement deve ser fechado

só + uma coisa… se vc passar muito tempo sem usar a conexão … o garbege collecttor vai coletar sozinho… sendo assim… ela naum ficará abeta pra sempre =]

Resumindo tudo:

  • o problema do ciclope era porque ele tava deixando as con abertas;

  • se, além disso, se quiser reutilizar conexões (o que melhora a performance do servidor), deve-se utilizar uma connection pool;

  • deve-se evitar utilizar variáveis estáticas com servlets. Os dados podem “vazar” para outras instâncias. Ao invés disso, deve-se armazenar dados no objeto session.

[quote=“hipersoft”]Resumindo tudo:

  • o problema do ciclope era porque ele tava deixando as con abertas;

  • se, além disso, se quiser reutilizar conexões (o que melhora a performance do servidor), deve-se utilizar uma connection pool;

  • deve-se evitar utilizar variáveis estáticas com servlets. Os dados podem “vazar” para outras instâncias. Ao invés disso, deve-se armazenar dados no objeto session.[/quote]

se possivel… me explica ai esse

podem “vazar” para outras instâncias

vlw

Os dados salvos em variáveis estáticas são visíveis por todas as instâncias de servlet. Quando a servlet salva um dado numa dessas variáveis, pode acontecer de ela ter sido corrompida por outra instância.

Não sei exatamente que tipo de aplicação vc criou mas uma dica que me deram quando criei o meu, se vc ficar criando e fechando conexoes varias vezes vc acaba prejudicanco a performance do seu site, logo vc pode usar a API JNDI, que controla suas conexoes, ex ela ve o tempo maximo de espera, o nº maximos de conexoes abertas e mais um monte coisas, tem um how to no site do jakarta, mas se quiser em outro momento posso te ajudar.