While com ResultSet

ola, estou com uma dificuldade com o Resultset, que é o seguinte…
(eu consigo inserir no banco mas nao consigo pesquisar)
tenho em uma classe CtrlBD um metodo que retorna um ResultSet…


public static ResultSet conBD(String query) {
try{
Class.forName(“com.mysql.jdbc.Driver”);
conn = DriverManager.getConnection(url, username, password);
prepStmt = conn.prepareStatement(query);
res = prepStmt.executeQuery();
prepStmt.close();
conn.close();
}catch(SQLException sqlex){ System.out.println("Erro query: "+ sqlex);
}catch(ClassNotFoundException cnfex){ System.out.println("nao carregou o driver "+ cnfex);
}
return res;
}

a minha dificuldade é na hora de usar esse metodo…

public Dispositivo pesq(String ip)
{
Dispositivo objDispositivo = new Dispositivo();
String query = “select * from dispositivo where ip = '”+ip+"’;";
CtrlBD objBD = new CtrlBD();
ResultSet res = objBD.conBD(query);
int i = 0;
System.out.println(res);

try{
while(res.next())
{
Dispositivo objDisp = new Dispositivo();
objDisp.setAll(res.getString(1),res.getString(2),res.getString(3),res.getString(4),res.getString(5));
objDispositivo.dispositivo.clear(); //(.dispositivo é um vector)
objDispositivo.dispositivo.add(i, objDisp);
i++;
}
}catch(SQLException sqlex){ System.out.println("CtrlPesquisaDispositivo: "+sqlex);
}
return objDispositivo;
}

nesse metodo sempre esta caindo no SQLException, o erro q retorna é o seguinte:

CtrlPesquisaDispositivo: java.sql.SQLException: Operation not allowed after ResultSet closed

dicas,

1 - use a tag [code] para deixar a tua msg bonitona :mrgreen: ;
2 - qdo vc fecha o statement fecha o resultset;
3 - não é legal retornar resultset num método.

Você está fechando o ResultSet…
ai não vai rolar…

prepStmt.close();

gui. :wink:

obrigado pessoal… mas nao fui muito longe agora o erro é este:

CtrlPesquisaDispositivo: java.sql.SQLException: Before start of result set