E se nao retornar nenhum resultado?

eae!

to com uma duvida aki…

tenho um sistema web… q usa o mysql…
uns dos recursos do sistema é a área de busca…

o problema é o seguinte… tem algum metodo q reconhece se o banco de dados nao encontrar nenhum registro da informação solicitada?

tipo eu queria fazer assim…

logo depois do cara entrar com a busca, a pagina se conecta ao mysql, verifica se existe a iformação solicitada e retorna o resutado…
mas e se nao tiver o q o cara ta procurando??

pq eu quero fazer assim:


if(//nao retornou nada do mysql .... eh aki a minha duvida)
{
   out.println("<br> sua busca nao retornou nenhum resultado.");
   out.println("<br> tente novamente...");
}
else //encontrou informação soliciitada
{
   out.println("os resultados da busca sao: ");
   while(rs.next())
   {
      out.println("rs.getString("aaaa");
      out.println("<br>");
    }
}

tem como fazer esse esquema?

valeu!!!

galera…
ja resolvi o problema…

eu usei o método isBeforeFirst() do ResultSet
q retorna true se o ponteiro tiver antes da primeira linha, ou seja, nao tiver resultados…
aí eu só neguei o método, pra se nao tiver nenhum resultado, nao entrar no if.

entao eu fiz assim:

if(!rs.isBeforeFirst())  // nao encontrou a informação
{ 
   out.println("<br> sua busca nao retornou nenhum resultado."); 
   out.println("<br> tente novamente..."); 
} 
else //encontrou informação soliciitada 
{ 
   out.println("os resultados da busca sao: "); 
   while(rs.next()) 
   { 
      out.println("rs.getString("aaaa"); 
      out.println("<br>"); 
    } 
} 

e funcionou perfect!

valeu!

Olá,

esta é uma solução mas, alguns drivers não implementam o isBeforeFirst(). O FireBird tinha este problema há um ano atrás, não sei se já corrigiram…

Eu ainda ficaria com a opção de colcoar uma flag:

   boolean temResultado = false;

   while(rs.next())
   {
      out.println("rs.getString("aaaa");
      temResultado = true;
    } 

...

Mas o ideal mesmo seria vc passar os dados do ResultSet para uma Collection e no momento adequado usar o método size(), para verificar se há elementos. Não é uma boa prática trabalha diretamente com ResultSet…

valeu cara…
eu tb acho q trabalhar diretamente com o ResultSet nao é boa ideia…
qualquer erro detona a aplicação.
e ficar trabalhando com try e catch fazendo cair nisso propositalmente tb acho nao ser uma boa ideia…

mas é q eu nao sei mto de Collections… vo da uma pesquisa… aprender um pouco mais!

só me tira uma duvida meio besta… hehehe
com Collections eu consigo descobrir qtas linhas de ResultSet eu vou ter?

e depois da usar uma variável q será o numero de linhas de ResultSet, e se for igual a 0 eu mostro a pagina indicando q a busca nao retornou nenhum resultado?

Abraços!