Olá galera do GUJ. Estou precisando salvar um arquivo txt contendo o IP da conexao (que será digitado pelo usuário do sistema) para poder ser usado por outra classe do mesmo sistema. Vou tentar explicar um pouco melhor. Na verdade o que eu tenho até agora é o seguinte:
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
/**
*
* @author RamiroPamponet
*/
public class ConexaoBD extends javax.swing.JFrame {
Principal pri;
final private String driver = "org.postgresql.Driver";
private String url; // = "jdbc:postgresql://localhost:5432/fisio";;
public String ip;
final private String usuario = "postgres";
final private String senha = "123";
Statement stm;
ResultSet rs;
private Connection con, con1;
ConexaoBean cb;
public List<ConexaoBean> conexao;
/**
* Creates new form Conexao
*/
public ConexaoBD() {
initComponents();
cb = new ConexaoBean();
conexao = new ArrayList();
}
private void btConectarActionPerformed(java.awt.event.ActionEvent evt) {
ip = tfIP1.getText() + "." + tfIP2.getText() + "." + tfIP3.getText() + "." + tfIP4.getText();
cb.setIp(ip);
conexao.add(cb);
if (conexao.size() > 0) {
String stringIp = conexao.get(0).getIp();
url = "jdbc:postgresql://" + stringIp + ":5432/fisio"; // Aqui ele Pega o ip Normalmente
JOptionPane.showMessageDialog(null, url);
conectaBD();
}
}
public Connection conectaBD() {
try {
Class.forName(driver);
// Recuperar a url no Arquivo Salvo
con = DriverManager.getConnection(url, usuario, senha);
JOptionPane.showMessageDialog(null, "Conectado ao Banco de Dados!");
pri = new Principal();
pri.setVisible(true);
this.hide();
} catch (ClassNotFoundException Driver) {
JOptionPane.showMessageDialog(null, "Falha na Conexão com o Banco de Dados!" + Driver);
limpa();
} catch (SQLException Fonte) {
JOptionPane.showMessageDialog(null, "Erro de Conexão!" + Fonte);
limpa();
}
return con1;
}
public Connection conecta() {
ip = conexao.get(0).getIp();
url = "jdbc:postgresql://" + ip + ":5432/fisio"; // Aqui não pega o ip
JOptionPane.showMessageDialog(null, url);
try {
Class.forName(driver);
// Recuperar a url no Arquivo Salvo
con = DriverManager.getConnection(url, usuario, senha);
JOptionPane.showMessageDialog(null, "Conectado ao Banco de Dados!");
} catch (ClassNotFoundException Driver) {
JOptionPane.showMessageDialog(null, "Falha na Conexão com o Banco de Dados!" + Driver);
limpa();
} catch (SQLException Fonte) {
JOptionPane.showMessageDialog(null, "Erro de Conexão!" + Fonte);
limpa();
}
return con;
}
public void desonecta() {
boolean result = true;
try {
con.close();
//JOptionPane.showMessageDialog(null, "Conexão Fechada!");
} catch (SQLException erroSQL) {
JOptionPane.showMessageDialog(null, "Não Foi Possíve Fechar o Banco de Dados!");
result = false;
}
}
public void executeSQL(String sql) {
try {
stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = stm.executeQuery(sql);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Erro ao Executar o Comando!");
ex.printStackTrace();
}
}
o método private void btConectarActionPerformed(java.awt.event.ActionEvent evt) gera uma string contendo o ip digitado pelo usuário, para compor a url da conexao com o banco de dados. Nesse caso, até uma solução mais simples resolveria
private void btConectarActionPerformed(java.awt.event.ActionEvent evt) {
ip = tfIP1.getText() + "." + tfIP2.getText() + "." + tfIP3.getText() + "." + tfIP4.getText();
url = "jdbc:postgresql://" + ip + ":5432/fisio"; // Aqui ele Pega o ip Normalmente
JOptionPane.showMessageDialog(null, url);
conectaBD();
}
porém minha intenção era tornar o ip disponível para ser utilizado também pelo método conecta() (que é o método utilizado pelas minhas telas do sistema para salvar, alterar, excluir, mostrar os dados e navegar pelos dados) armazenando o ip em um ArrayList, mas não obtive êxito (no método conectaBD está tudo ok, mas no método conect() a variável ip me retorna null). Então, acho que minha última tentativa seria criar um arquivo txt externo para salvar esse ip e depois recuperá-lo para ser usado pelo método conecta(). Meu problema é que não sei trabalhar com IO. Gostaria de uma “mãozinha” para criar 2 métodos na minha classe. Um para criar o arquivo (assim que o botão conectar fosse pressionado) e outro para ler o arquivo e “pegar” o ip salvo nesse arquivo e montar minha String url. Mais uma coisa. Seria possível, toda vez que uma nova tentativa de conexao fosse feita, apagar o arquivo existente e gerar um novo arquivo txt? Assim ao abrir o arquivo para leitura sempre teria apenas uma linha.