SQLException

1 resposta
S

galera,

to com um probleminha quando executo meu metodo. da um erro disendo: java.sql.SQLException: ResultSet is closed

quando clico para ver onde é, mostra que ta no  while (rs.next()){

o codigo é:

public Collection procurar(Pedidos pedidos) throws PedidosInexistenteException {

Statement stmt = null;

Connection con = null;

ResultSet rs = null;

ResultSet rs2 = null;

Collection listaPedidos = new LinkedList();

StringBuffer query = new StringBuffer();

StringBuffer query2 = new StringBuffer();

StringBuffer query3 = new StringBuffer();

ClientesPessoaFisica pf = null;

ClientesPessoaJuridica pj = null;

Endereco endereco = null;

Pedidos pedido = null;

String data = null;
try{
           int codigoCliente = pegarCodigo(pedidos);
       query.append("SELECT P.COD_PEDIDO, P.COD_CLIENTE, P.DATA_PEDIDO, C.NOME, C.TIPO, L.USUARIO, L.SENHA, E.COD_ENDERECO, E.NUMERO, E.RUA, E.BAIRRO, E.CIDADE, E.FONE, E.CELULAR, E.CEP, E.EMAIL FROM PEDIDOS P, CLIENTES C, LOGIN L, ENDERECO E WHERE P.COD_CLIENTE=C.COD_CLIENTE AND C.COD_CLIENTE=L.COD_CLIENTE AND C.COD_CLIENTE=E.COD_CLIENTE AND P.COD_CLIENTE="+codigoCliente+";");
       System.out.println(query);
           con = gerenciadorBD.getConexao();
       stmt = con.createStatement();
       rs = stmt.executeQuery(query.toString());

       while (rs.next()){
	         int codendereco = rs.getInt("COD_ENDERECO");
         int numero = rs.getInt("NUMERO");
         String rua = rs.getString("RUA");
         String bairro = rs.getString("BAIRRO");
         String cidade = rs.getString("CIDADE");
         String fone = rs.getString("FONE");
         String celular = rs.getString("CELULAR");
         String cep = rs.getString("CEP");
   	         String email = rs.getString("EMAIL");


         endereco = new Endereco(numero, rua, bairro, cidade, fone, celular, cep, email);

         int codCliente = rs.getInt("COD_CLIENTE");
         String nome = rs.getString("NOME");
             String tipo = rs.getString("TIPO");
         String usuario = rs.getString("USUARIO");
  	         String senha = rs.getString("SENHA");
         data = rs.getString("DATA_PEDIDO");
         int codPedido = rs.getInt("COD_PEDIDO");

         if (tipo.equals("F")){
                query2.append("SELECT CPF FROM PESSOAF WHERE COD_CLIENTE="+codCliente+";");
                System.out.println(query2);
            rs2 = stmt.executeQuery(query2.toString());

            while (rs2.next()){
              String cpf = rs2.getString("CPF");

              pf = new ClientesPessoaFisica(codCliente, nome, tipo, endereco, usuario, senha, cpf);
              pedido = new Pedidos(codPedido, pf, data);
            }

         }else{
           query3.append("SELECT CNPJ FROM PESSOAJ WHERE COD_CLIENTE="+codCliente+";");
           rs2 = stmt.executeQuery(query3.toString());
               System.out.println(query3);
           while (rs2.next()){
             String cnpj = rs2.getString("CNPJ");

             pj = new ClientesPessoaJuridica(codCliente, nome, tipo, endereco, usuario, senha, cnpj);
             pedido = new Pedidos(codPedido, pj, data);
           }

          }

         listaPedidos.add(pedido);

       }


     }catch(SQLException e){
        e.printStackTrace();
                   }finally {
                              try{
                                    rs.close();
                                rs2.close();
                              }catch(SQLException f){

                              }
                              try {
                                      stmt.close();
                              } catch (SQLException f) {

                              }
                              try {
                                      con.close();
                              } catch (SQLException f) {

                              }
                      }

      return listaPedidos;
}

1 Resposta

M

não duplique tópicos…

http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&t=13507

e, tente adquirir os dados de um resultset, e depois tente usar o mesmo pra adquirir o resto dos dados de q precisa…

Criado 18 de janeiro de 2005
Ultima resposta 18 de jan. de 2005
Respostas 1
Participantes 2