Paginação - HELP

4 respostas
Y

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:

public Estrutura FirstReg
{
  try 
  {                
      if (rs.first())
     {
           // pega os valores do recordset

      }
  } 
  catch (SQLException e) 
  {
       e.printStackTrace();
  }
  return estrutura;
}

E o programa esta saindo pela excessão no If

Alguem sabe como eu faço os outros funcionarem????

4 Respostas

J

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…

Y

O drive que estou usando é: oracle.jdbc.driver.OracleDriver.

Qual seria outro jeito de fazer essa navegação?

“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…

J

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.:

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

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.

G

Se você precisa de uma paginação legal, dê uma olhada na displayTag: http://www.portaljava.com/home/modules.php?name=Content&pa=showpage&pid=155

Criado 20 de julho de 2006
Ultima resposta 21 de jul. de 2006
Respostas 4
Participantes 3