Oi pessoal!
Estou fazendo paginação e sugiu um problema:
Apenas o next funciona!! 8O
E o codigo esta igual para todos eles mudando apelas o direcionamento.
O erro que da qdo tendo fazer o RecordSet.first ou RecordSet.previus ou RecordSet.last é o seguinte:
java.sql.SQLException: Operação inválida para encaminhar apenas conjunto de resultados: last
ou
java.sql.SQLException: Operação inválida para encaminhar apenas conjunto de resultados: first
ou
java.sql.SQLException: Operação inválida para encaminhar apenas conjunto de resultados: previus
E o meu codigo esta basicamente para todos eles:
[code]public Estrutura FirstReg
{
try
{
if (rs.first())
{
// pega os valores do recordset
}
}
catch (SQLException e)
{
e.printStackTrace();
}
return estrutura;
}[/code]
E o programa esta saindo pela excessão no If
Alguem sabe como eu faço os outros funcionarem???
Talvez seu driver não suporte, que driver está usando?
E qual a necessidade de usar isso? Se está fazendo navegação nos registro, existem opções mais elegantes que isso…
O drive que estou usando é: oracle.jdbc.driver.OracleDriver.
Qual seria outro jeito de fazer essa navegação?
[quote=“jairelton”]Talvez seu driver não suporte, que driver está usando?
E qual a necessidade de usar isso? Se está fazendo navegação nos registro, existem opções mais elegantes que isso…[/quote]
Nunca trabalhe diretamente com ResultSet’s, Java é orientado a objetos e esse modelo de desenvolvimento praticamente assassina a OO, a ideia é criar classes que representem esses dados, criar uma coleção desses objetos e iterar por ela:
ex.:
[code]public class Cliente{
private int id;
private String nome;
//get & set
}
//consulta
ResultSet res = //query
List lista = new ArrayList();
while(res.next()){
Cliente cli = new Cliente();
//preenche o cliente
lista.add(cli);
}
//navegação
ListIterator ite = lista.listIterator();
ite.next();
ite.previous();
//etc[/code]
Se o ListIterator não tem tudo o que quer, procure outra classe que tenha, se não achar, extenda o ListIterator (ou outro iterator qualquer) e implemente o que você quer…
Essa navegação no ResultSet não é nem um pouco recomendavel, inclusive o ResultSet nem deveria poder ser acessado de dentro da classe onde você manipula esses dados, ele deveria estar em um DAO, mas…
Lembre-se sempre de trabalhar com objetos, não com dados soltos assim, id do cliente, nome do cliente, dadox do cliente… trabalhe com um Cliente.