Ajuda com SQL Excpetion: Nenhuma conexao corrente[RESOLVIDO]

5 respostas
psyhclo

Oi, eu estou tentando inserir um cadastro no banco, estou usando o netbeans, e o derby client driver, so que qdo eu clico para salvar ele fala um SQL Exception: Nenhuma conexao corrente. Ja tentei de tudo mas n consigo, aki esta o DAO q insere no banco e depois tem a funcao de conectar no banco, se puderem me ajudar agradeco.

Insere no banco:
import main.control.*;
import main.model.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;

/**
 *
 * @author Roger
 */
public class ClienteDAO {
    private ClientePOJO clientePojo;
    private ArrayList cli;
    private Connection con;
    
    public ClienteDAO(){}
    
    public boolean inserir_No_Banco(Object objeto_A_Ser_Inserido){
        boolean flag = false;
        
        ClientePOJO _clientePojo = (ClientePOJO) objeto_A_Ser_Inserido;
        String sql = "Insert into CLIENTE ("+
                               "NOME_CLI,"+
                               "TEL_CLI,"+
                               "RUA_CLI,"+
                               "NUM_CLI,"+
                               "BAIRRO_CLI,"+
                               "COMPL_CLI,"+
                               "CIDADE_CLI,"+
                               "ESTADO_CLI,"+
                               "CEP_CLI,"+
                               "CPF_CLI,"+
                               "VIP_CLI,"+
                               "DATA_CADASTRO_CLI)"+
                               "values (?,?,?,?,?,?,?,?,?,?,?,?)";
        SingletonBd.connecta.conecta("bancoSalao");
        this.con = SingletonBd.connecta.getCon();
        try{
            PreparedStatement stmt = con.prepareStatement(sql); 
            stmt.setString(1,_clientePojo.getNome_cli());
            stmt.setString(2, _clientePojo.getTelefone_cli());
            stmt.setString(3, _clientePojo.getRua_cli());
            stmt.setInt(4, _clientePojo.getNum_rua_cli());
            stmt.setString(5, _clientePojo.getBairro_cli());
            stmt.setString(6, _clientePojo.getCompl_cli());
            stmt.setString(7, _clientePojo.getCidade_cli());
            stmt.setString(8, _clientePojo.getEstado_cli());
            stmt.setString(9, _clientePojo.getCep_cli());
            stmt.setString(10, _clientePojo.getCpf_cli());
            stmt.setString(11, _clientePojo.getVip_cli());
            stmt.setString(12, _clientePojo.getData_cadastro_cli());
            flag = true;
            stmt.execute();
            stmt.close();
            JOptionPane.showMessageDialog(null,"Cadastro realizado!","Sucesso",JOptionPane.INFORMATION_MESSAGE);
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro em inserir no banco: "+ex.getMessage() ,"SQLException", JOptionPane.ERROR_MESSAGE);
        }
          SingletonBd.connecta.CloseCon();
          return flag;
    }
Conecta No banco:
import java.sql.*;
import java.util.*;
import main.model.dao.*;
import javax.swing.*;
/**
 *
 * @author Roger
 */
public class ConectaBanco {
    private Connection con; //objeto do tipo coneções
    private String usuario = "roger";
    private String senha = "roger";
    private Statement st;
    
    public ConectaBanco() {
    }
    
    public boolean conecta(String nomeDoBanco){
        boolean flag = false;
        try{
            Class.forName("org.apache.derby.jdbc.ClientDriver");
            con = (Connection) DriverManager.getConnection("jdbc:derby://localhost:1527/bancoSalao",usuario,senha);
          
            st = (Statement) con.createStatement();
            flag=true;
           
            
         }catch(SQLException ex){
                JOptionPane.showMessageDialog(null,""+ex,"SQLException", JOptionPane.ERROR_MESSAGE);
         }catch(ClassNotFoundException e){
               JOptionPane.showMessageDialog(null,""+e, "ClassNotFoundException", JOptionPane.ERROR_MESSAGE);
         }
         CloseCon();
         return flag;
    }
   
    public void CloseCon(){
        try{
            getCon().close();
        }catch(SQLException ex){
            //JOptionPane.showMessageDialog(null, "SQLException", ""+ex, JOptionPane.ERROR_MESSAGE);
            System.out.println("Fecha banco"+ex);
        }
    }
    public Connection getCon(){
        return con;
    }
    public Statement getSt(){
        return st;
    }
 
    
}

5 Respostas

psyhclo

Pessoal ajudem por favor, to tentando achar algum erro aki mas parece q ta tudo certo, um olhar de alguem de fora talvez ajude.
Obrigado.

pmlm

Estas a fechar a conexão no mesmo método onde abres. Quanto o método conecta termina já a ligação está fechada.

psyhclo

Como assim, vc quer dizer que devo fechar a conexao fora do metodo inserir_no_banco? nao entendi muito a sua explicacao, foi uma afirmacao ou uma pergunta?
obrigado. E mesmo assim, eu tentei tirar o fechamento da conexao e mesmo assim nao deu. =(

pmlm

O método que cria a conexão não pode ter o close, conforme esse tem. Senão nunca vai ser possível efectuar nenhuma query.

psyhclo

Consegui resolver o problema graças a sua sugestão, Obrigado!

Criado 13 de novembro de 2009
Ultima resposta 13 de nov. de 2009
Respostas 5
Participantes 2