Problema com ResultSet

Pessoal, na linha if(rs2.next()){ ele lança uma excessão “Conjunto de Resultados Esgotado”, mas ele não teria q entrar no else else{ usuario.setMensagem(“Entidade não cadastrada.”);} ???

if ( rs.next() ) {					
   //se está liberado o acesso web para o usuário
  if(rs.getString(2).equals("1")){
         //se tem senha oracle
         if (rs.getString(3).equals("1")){
	  String url 		= PropertiesLoaderImpl.getValor("url");
	  conectou = DriverManager.getConnection(url,usuario.getUsuario(),usuario.getSenha());
	 if(conectou != null){				    			  
	    sql2 = con.prepareStatement 
		  ("SELECT codigo_representante " +
		   "  FROM representante " +
		   " WHERE id_entidade = ?");
	   sql2.setString(1, rs.getString(6));				    		   System.out.println("Entidade = "+rs.getString(6));
             rs2 = sql2.executeQuery();				    
	   if(rs2.next()){
		System.out.println("rs2 = "+rs2);
		usuario.setLogado("ok");
		usuario.setId_representante(rs2.getString(1));
	   }else{
	           usuario.setMensagem("Entidade não cadastrada.");
	   }
	  System.out.println("Representante = "+rs2.getString(1));
	  rs2.close();
	  sql2.close();				    			  
	  conectou.close();
      }else{
	usuario.setMensagem("Usuário ou senha não confere.");
        }			    		  
else{
    usuario.setMensagem("Usuário ou senha não confere.");
}

mas… qual é o problema?

Desculpe-me, eu cliquei em enviar sem ter descrito o problema, mas já editei e está acima do código.

[quote=Javadoc]next()
Moves the cursor down one row from its current position.
[/quote]

Ou seja, acredito que, não dá para você verificar se há um próximo registro. Eu vi uma vez uma maneira de fazer essa verificação!

Bom, pela documentação da classe ResultSet, o método next pode lançar apenas uma SQLException. A julgar pela mensagem da exceção lançada, O seu código deve estar capturando exceções e "mascarando-as com alguma outra exceção (cuja mensagem é “Conjunto de Resultados Esgotados”). Se, de fato, é a invocação do next que está lançando a exceção, essa exceção só pode ser uma SQLException. Seria interessante então você dar um jeito de “desmascarar” a SQL Exception, pois ela provavelmente vai trazer alguma mensagem do BD explicando o que deu de errado, ou então vai trazer uma mensagem dizendo que seu ResultSet estava “closed” quando tentou invocar o next.
Teria como você isso para nós?

Valew pessoal, realmente era uma SQLException, pois a instrução System.out.println("Representante = "+rs2.getString(1)); estava fora do IF, coloquei dentro do IF e funcionou.

Valew!!!

Em vez de usar os números dos campos, use os nomes. (ex: "
sql2.setString(“id_entidade”, …)

A diferença de desempenho entre usar os números e usar os nomes é normalmente desprezível (é claro que depende um pouco da qualidade de implementação do driver), e o programa fica muito mais inteligível. Além disso você se protege contra alterações na sua query SQL.