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???
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
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.
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
[quote]
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);
}
}
});
[/quote]
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
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: