Conexao SQL

5 respostas
H

Prezados, existe a possibilidade de abrir uma conexao que foi fechada?

Estou usando classe Connection

não consegui localizar Connection.Open ou algo do genero....

Obrigado!

Edit:

Gostaria de inserir um if sendo...
if (conexao.isClosed()){
conexao.Open();
}

Estou usando o seguinte condigo....

public class ConexaoDAO {

    private static Connection conexao;

    public static Connection getConnection() throws Exception {
        if (conexao == null) {
            String url = "jdbc:postgresql://servidor:5432/bd";
            String usuario = "__";
            String senha = "__";
            Class.forName("org.postgresql.Driver");
            conexao = DriverManager.getConnection(url, usuario, senha);
        }
        return conexao;
    }
}

5 Respostas

Rodrigo_Sasaki

Cara, até onde eu sei, não tem como fazer isso que você quer.

Mas eu pergunto, por que não abrir outra conexão?

H

Hehe..

Seria assim?

estou testando agora... mas acho que funcionou

public class ConexaoDAO {  
  
    private static Connection conexao;  
  
    public static Connection getConnection() throws Exception {  
        if (conexao == null|| conexao.isClosed()) {
            String url = "jdbc:postgresql://servidor:5432/bd";  
            String usuario = "__";  
            String senha = "__";  
            Class.forName("org.postgresql.Driver").newInstance();;  
            conexao = DriverManager.getConnection(url, usuario, senha);  
        }  
        return conexao;  
    }  
}

edit:

Quando utilizo assim, ele aparece o seguinte erro:

Communications link failure

Last packet sent to the server was 20 ms ago.
Communications link failure

quando eu mando novamente o comando ele executa normalmente.....
assim eu acabo perdendo um comando de execução....
alguem pode me dar uma ideia de como resolver isso?

Rodrigo_Sasaki

A ideia é não manter uma conexão, é sempre pegar uma nova quando você precisar

H

Desculpe a minha ignorancia, como eu poderia fazer isso?

atualmente eu uso assim para fazer essa parte:

public class CadastroDAO {

    private final Connection connection;

    public CadastroDAO () throws Exception {
        this.connection =  ConexaoDAO.getConnection();
    }

public void inserir(Destinatario destinatario) throws Exception {

        String sql = "INSERT INTO cadastro(nome,tppessoa,documento, endereco,complemento,bairro,cidade, estado, cep, obs,contato) VALUES(?,?,?,?,?,?,?,?,?,?,?)";

      PreparedStatement stmt = connection.prepareStatement(sql);
                stmt.setString(1, destinatario.getNome());
                stmt.setString(2, destinatario.getTppessoa());
                stmt.setString(3, destinatario.getDocumento());
                stmt.setString(4, destinatario.getEndereco());
                stmt.setString(5, destinatario.getComplemento());
                stmt.setString(6, destinatario.getBairro());
                stmt.setString(7, destinatario.getCidade());
                stmt.setString(8, destinatario.getEstado());
                stmt.setString(9, destinatario.getCep());
                stmt.setString(10, destinatario.getObs());
                stmt.setString(11, destinatario.getContato());
                stmt.execute();
               }
}

nao consigo da um “new connection” de maneira alguma…

H
problema resolvido...
public class ConexaoDAO {    
    
    private static Connection conexao;    
    
    public static Connection getConnection() throws Exception {    
        if (conexao == null|| !conexao.isValid(0)) {  
            String url = "jdbc:postgresql://servidor:5432/bd";    
            String usuario = "__";    
            String senha = "__";    
            Class.forName("org.postgresql.Driver").newInstance();;    
            conexao = DriverManager.getConnection(url, usuario, senha);    
        }    
        return conexao;    
    }    
}

Abraços Pessoal!

Criado 8 de maio de 2014
Ultima resposta 9 de mai. de 2014
Respostas 5
Participantes 2