ResultSet como saber se achou algo?  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
leoloko
JavaChild
[Avatar]
Membro desde: 15/05/2005 12:05:19
Mensagens: 149
Offline

Por exemplo, como faço pra saber se meu ResultSet encontrou a linha procurada?

Porque eu to fazendo a parte de login de um sistema...

Quando ele encontra o usuario no banco, tudo ok, ele faz o que tem que fazer certinho...

Agora quando não encontra ou o cara deixou o campo usuário em branco, ele dah um erro... de NullPointerException

Então, como eu verifico se a consulta retornou uma linha, ou nenhuma?

tipo se encontrou faça isso senão faça aquilo...

Atualmente faço if(rs.next()){}else{} mas acho que num tah certo!
[MSN] [ICQ]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

O que você faz é o que deve ser feito (if ... { } else { }).
É o mais rápido, já que a informação que você precisa não é a contagem de linhas, mas só saber se achou ou não.
[WWW]
fabim
GUJ Master
[Avatar]

Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline

e isso q vc fez mesmo...

ja tentei fazer (rs != null), mas nao da pq segundo a documentacao o retorno do RS e (never null)...

ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται

Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao


[MSN]
julianostr
GUJ Ranger
[Avatar]

Membro desde: 31/03/2006 14:16:14
Mensagens: 855
Localização: Blumenau - SC
Offline

Se você fez



Atualmente faço if(rs.next()){}else{} mas acho que num tah certo!



e ainda tá dando erro de NullPointerException, é por que o problema é outro, não nessa condição aí. Alguma variável inicializada com null não recebeu nenhum outro valor e ao tentar referenciar algum método, por exemplo, explodiu-se.

Coloque tudo isso num try/catch e no catch coloque um printStacktrace.


LASER
Light Amplification by Stimulated Emission of Radiation
karen_barbatto
JavaChild

Membro desde: 03/10/2006 09:19:29
Mensagens: 149
Offline

posta um trecho do seu código para gente entender sua pergunta com mais facilidade
Marck
Virtual Machine Man
[Avatar]

Membro desde: 15/08/2006 16:15:11
Mensagens: 598
Offline

Olá.
Acho que o erro e em outra parte mesmo. Pois se o ResultSet nao encontrar resultado ele mostra erro no Exception. Lá vc pode personalizar uma infomaçao de nao encontrado com um JOptionPane.

espero ter ajudado,
Marck

"A vida me deu tudo que eu pedi. Agora se o que eu pedi foi pouco, ai o problema já é meu!". Sartre

Besteiras sobre programação

http://toobject.wordpress.com/
DataModelDinamic
[Email] [WWW] [MSN]
igor.cardoso
Thread.start()

Membro desde: 30/04/2008 10:52:20
Mensagens: 47
Offline

Olá pessoal, reaproveitando a pergunta, preciso saber se o rs encontrou algo no banco.
seria algo do tipo rs.length() ou rs.size() porem ele não tem nenhum desses metodos.
como faria para saber se o rs retornou alguma linha?.

TeiTei
Virtual Machine Man
[Avatar]

Membro desde: 31/10/2007 07:36:22
Mensagens: 665
Offline

cara e simples da um



N linha do next vc esta validando se existem alguem la dentro do rs. ou seja existe um prixomo? pois ele nunca volta null sempre existe algo no retorno de um rs creio que sejam as informações para o metadata mas isso foje, então ai depois de validar se existe algo volte para a 1º posição com o previus e imprima na tela caso ele entre no else e pq nao veio nada do banco.

This message was edited 1 time. Last update was at 30/05/2008 16:08:20


Javai?
Bruno Laturner
GUJ Expert
[Avatar]

Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline


A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra
[WWW]
TeiTei
Virtual Machine Man
[Avatar]

Membro desde: 31/10/2007 07:36:22
Mensagens: 665
Offline

Bruno Laturner wrote:


desta forma ele estaria dando um next() no rs e perderia o 1º registro ele deve voltar com o previus....especificação do JDBC 2.0 resultset rolaveis

Javai?
Bruno Laturner
GUJ Expert
[Avatar]

Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline

TeiTei wrote:
Bruno Laturner wrote:


desta forma ele estaria dando um next() no rs e perderia o 1º registro ele deve voltar com o previus....especificação do JDBC 2.0 resultset rolaveis

É meio estranho checar se existe primeiro para depois obter.

Geralmente eu já executo trazendo os resultados:Se quiser mesmo ver quantos tem p/ depois executar, então só com esse tipo que você falou, e executando um beforeFirst()

Para saber o número de resultados retornados, tente
Mesmo caso de antes, precisa do beforeFirst() se quiser obter algo depois.

A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra
[WWW]
s4nchez
Virtual Machine Man
[Avatar]

Membro desde: 05/06/2006 11:35:55
Mensagens: 674
Localização: London, UK
Offline

Pra verificar se um usuário existe, se você está usando "count" no seu select, ele vai sempre retornar alguma coisa. Se não tá usando, talvez devesse.

Na dúvida, posta seu código pra gente ajudar.

Ivan Sanchez | coding dojo | blog | twitter
[WWW]
igor.cardoso
Thread.start()

Membro desde: 30/04/2008 10:52:20
Mensagens: 47
Offline

TeiTei wrote:cara e simples da um



N linha do next vc esta validando se existem alguem la dentro do rs. ou seja existe um prixomo? pois ele nunca volta null sempre existe algo no retorno de um rs creio que sejam as informações para o metadata mas isso foje, então ai depois de validar se existe algo volte para a 1º posição com o previus e imprima na tela caso ele entre no else e pq nao veio nada do banco.


Fala pessoal, obrigado pela ajuda, era meio logico o else, mas não tinha observado isso,
enfim, se retornar algo da consulta, ele executa os get, senão, ja vai para o else.

Vlw!
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team