Manter conexao com o banco de dados

5 respostas
L

Eu gostaria de fazer uma conexao com o banco de dados ao iniciar o aplicativo e a conexao soh ser finalizada quando eu fechar o aplicativo como eu poderia fazer isto???

5 Respostas

Luca

Olá

Mesmo sem saber como é seu aplicativo recomendo que além de estudar JDBC e Hibernate, veja também pools de conexão.

[]s
Luca

S

Abre o conexão no construtor da classe, quando for detectado que o aplicativo será fechado, você fecha a conexão.

Enquanto a conexão estiver aberta você cria os Statement’s e ResultSet’s (se necessário), depois de usá-los basta fechá-los, não fechando a conexão, e sim fechar a conexão quando for detectado que a aplicação será encerrada.

É mais ou menos por aí.

Qualquer coisa é só escrever novamente.

L

Ae galera vlw pela ajuda
mas para informalos melhor
quando abre o programa, abre uma janela aonde o usuario digita em JTextFields os dados da conexao(host, ip, username, senha, etc…). Apos os dados digitados o usuario clika em um JButton aonde e pego oque foi passado nos JTextField e convertido para as String url, login, password e driver, que sao usadas para a conexao com o banco. Apos a conexao com o banco efetuada vai abrir uma janela(aonde o usuario vai trabalhar com o banco), soh que nesta janela a conexao nao eh mantida. Esse eh o problema.

Parte do codigo:

O evento no JButton

<blockquote>

ok.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

try{

conectarBanco();

System.out.println(Conexao estabelecida com sucesso);

new TesteBancoDados()setVisible(true);

}catch(Exception x){

System.out.println(x);

}

}

});
</blockquote>
S

De alguma forma vais ter que passar o objeto de conexão para ser usado nessa outra classe, depois que efetuar a conexão, podes passar através do construtor, +ou- assim:

new NovaJanela( objetoConexao );

e no construtor:

NovaJanela( Connection cnx ) { this.cnx = cnx; . . . }

Mais ou menos por aí, qualquer coisa é só postar novamente.

[]'s

grprado

Antes de tudo, estude o que o Luca indicou. Você vai entender que isso que está tentando fazer é uma bomba.

Se depois de estudar, você ainda estiver convencido de que deve abrir a connection no começo do aplicativo e fechá-la no fim ou se te mandam fazer assim e você não tem outra escolha, a solução que eu achei mais simples é usar um Singleton que controle essa connection e um Adapter na Connection que dispare uma RuntimeException se alguém tentar fechá-la com um .close() por exemplo.

Eu sei, é sofrível essa solução, mas necessidades toscas merecem soluções toscas :lol:

Criado 24 de julho de 2006
Ultima resposta 26 de jul. de 2006
Respostas 5
Participantes 5