Pessoal, estamos fazendo uma apliação web com algumas consultas a banco.
A maioria das consultas funciona, porém tem uma que lança, quando tentamos acessar um dado do ResultSet, uma SQLException com a mensagem “Exhausted resultset”. Alguém já viu isso e sabe como resolver??
public ResultSet recuperarProduto(int codigo) {
return executarQuery(
"SELECT NomPro, ImaPro " +
"FROM Produto " +
"WHERE CodPro = " + codigo
);
}
private ResultSet executarQuery(String query) {
ResultSet r = null;
try {
Connection conn = conectarBD();
Statement s = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY
);
s.execute(query);
r = s.getResultSet();
} catch (SQLException e) {
e.printStackTrace();
}
return r;
}
private Connection conectarBD() {
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@10.2.0.4:1521:dcc",
"naoVou",
"teMostrar"
);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return conn;
}
Em outra classe, tentamos acessar o ResultSet da seguinte forma:
try {
ResultSet r = InterfaceBancoDados.getInstance().recuperarProduto(codigo);
if (r != null) {
r.beforeFirst();
this.codigo = codigo;
this.nome = r.getString("NomPro"); // exceção lançada AQUI
this.enderecoImagem = r.getString("ImaPro");
}
} catch (SQLException e) {
e.printStackTrace();
}
Socorro! :oops:

