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;
}