Realizar um while() em um ResultSet mais de uma vez

Pessoal existe alguma forma de realizar um while() de um ResultSet mais de uma vez? Se não for possível existe alguma forma de conseguirmos o mesmo efeito dele?

while() ???

Não seria next() o que você quer dizer?

tb me pareceu eskisito…

O k realmente queres dizer?

é soh fazer ambas as coisas que voce queria fazer em whiles diferentes, no mesmo while

É o seguinte tenho um laço while que itera sobre um ResultSet da seguinte forma:

while(rs.next()){
  ..... código aqui ....
}

É que eu preciso disparar esse while mais de uma vez e pelo que pude perceber depois de iterado 1 vez o ResultSet não mais poderá ser iterado (me corrijam se estiver errado).
Era isso que eu queria saber, talvez utilizando uma matriz multidimensional resolva, o que vcs acham da idéia?

[code]while(rs.hasnext()){
codigo aki

} [/code]

while(rs.hasNext()){
    //codigo aki
} 

use o metodo beforeFirst()
http://java.sun.com/javase/6/docs/api/java/sql/ResultSet.html#beforeFirst()

while(rs.hasNext()){
     //codigo aki
} 

rs.beforeFirst();


while(rs.hasNext()){
     //codigo aki
} 

[quote=gobbo] while(rs.hasNext()){ //codigo aki } [/quote]

so cara pegando no meu pé…

era so um “n” minusculo…
nao precisava…
So malicia… :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted:

The JavaCompiler Man!!!

hauahauahauhuahaua
comedia

Sim e não.

O ResultSet tem o comando beforeFirst() que reseta o cursor para o inicio do resultado.
Mas isso só funciona se o ResultSet foi criado permitindo isso. ( o que normalmente acontece se vc não escolher nenhuma outra opção) . Veja os métodos de connection que criar statements e preparedstatements. Lá tem opções para aumentar a eficiencia do resutlset.

Por outro lado, se vc está criando objetos a partir do resultSet não itere o resultSet de novo, itera a lista dos objetos criados. É muito mais rápido e vc pode criar um resultSet mais eficiente com os parametros que falei antes.

[quote=sergiotaborda]

O ResultSet tem o comando beforeFirst() que reseta o cursor para o inicio do resultado.
Mas isso só funciona se o ResultSet foi criado permitindo isso. ( o que normalmente acontece se vc não escolher nenhuma outra opção) . Veja os métodos de connection que criar statements e preparedstatements. Lá tem opções para aumentar a eficiencia do resutlset.

.[/quote]

depende do Statement?

Pessoal vlw, tá rodando aqui.

O ResultSet tem o comando beforeFirst() que reseta o cursor para o inicio do resultado.
Mas isso só funciona se o ResultSet foi criado permitindo isso. ( o que normalmente acontece se vc não escolher nenhuma outra opção).
[/quote]

Incorreto.
Se vc nao explicitar o tipo do ResultSet, ele sera TYPE_FORWARD_ONLY por default e a tentativa de rolar resultados pra tras ira falhar.

http://java.sun.com/j2se/1.4.2/docs/api/java/sql/Connection.html#prepareStatement(java.lang.String)

Não, mas é no método de criação dele que vc indica esses parametros. Acontece que o statement é o factory do resultSet então ele tem que ser configurado para criar o RS corretamente.

[quote=fabiocsi][quote=sergiotaborda]
Mas isso só funciona se o ResultSet foi criado permitindo isso. ( o que normalmente acontece se vc não escolher nenhuma outra opção).
[/quote]
[/quote]

Verdade. :oops:

Realmente a principio parecia que iria funcionar, mas o beforeFirst() também não rolou. :lol:

Vc lembrou de ao criar o seu statement setar o resultset como type scroll insensitive?

connection.createStatement(ResultSet.CONCUR_UPDATABLE,ResultSet.TYPE_SCROLL_INSENSITIVE);

[quote=sergiotaborda][quote=gobbo]
depende do Statement?
[/quote]

Não, mas é no método de criação dele que vc indica esses parametros. Acontece que o statement é o factory do resultSet então ele tem que ser configurado para criar o RS corretamente.

[/quote]

entao depende uai!!! hauahauahah

so completando o que ja foi dito:
Para vc navegar novamente em um ResultSet, vc precisa cria-lo de maneira que habilite essa opção, como foi mostrado.
O detalhe que isso esta definido na especificação JDBC, e depnde da implementação que vc esta usando.
Ou seja, isso so funciona corretamente em alguns drivers JDBC. Alguns drivers não implementam corretamente toda as funcionalidades da especificação.
Vc vai precisar dar uma olhada nas docs do driver que vc esta usando.

[]´s

[quote=jgbt]so completando o que ja foi dito:
Para vc navegar novamente em um ResultSet, vc precisa cria-lo de maneira que habilite essa opção, como foi mostrado.
O detalhe que isso esta definido na especificação JDBC, e depnde da implementação que vc esta usando.
Ou seja, isso so funciona corretamente em alguns drivers JDBC. Alguns drivers não implementam corretamente toda as funcionalidades da especificação.
Vc vai precisar dar uma olhada nas docs do driver que vc esta usando.

[]´s
[/quote]

realmente…