Erro - Consulta

Oi… pessoal, me enrolei um pouco e acabei ganhando alguma dúvidas:

tenho o seguinte método de consulta em um DB:

[code]public ResultSet consultar(String query)
{

ResultSet rs = null; 

try 
{ 
  rs = conexao.stm.executeQuery(query); 
} 
catch (SQLException e) 
{ 
  System.out.println("PersistênciaDAO.consultar() -> Erro: " + e.getMessage()); 
} 

return rs; 

} [/code]

tenho que usar esse método consultar em um Servlet, e passar para uma collection os resultados desse método já mencionado. Estou fazendo assim:

[code]String qryconsulta = "SELECT nm_pessoa,email,dt_nasc,sexo FROM pessoas ";
ResultSet resultado = persistence.consultar(qryconsulta);

  while(resultado.next()) 
  { 
       colpessoa.add(resultado.getString("nm_pessoa")); 
       colpessoa.add(resultado.getString("email")); 
       colpessoa.add(resultado.getString("dt_nasc")); 
       colpessoa.add(resultado.getString("sexo"));                   
  }[/code]

mas dá o seguinte erro:

unreported exception java.sql.SQLException; must be caught or declared to be thrown

alguém pode me ajudar ???

Obrigado pela atenção!

:wink:

coloque o seu while( resultado.next() ) entre um try/catch, o método next() lança uma SQLException verificada

valeu matheus!!!

:wink:

Olá Matheus estou com problemas parecidos e não consigo resolver.
Utilizo o código abaixo para chamar um método dentro do proprio servlet mas ele me dá erro
The server encountered an internal error () that prevented it from fulfilling this request.
Você saberia qual o problema

rs = consultar("cidade");
try{  
  while(rs.next()){
    buf.append("<OPTION VALUE=\""+rs.getString(1)+"\" >"+rs.getString(2)+"</OPTION>\n"); 
  }
  }
  catch(SQLException ex) 
    {	        
    output.println("<h1>Falha</h1>");
    }
public ResultSet consultar(String tabela){
   ResultSet resu = null;
   try 
     {
       stmt = con.createStatement();   
       try 
         {    
          query="SELECT * FROM"+tabela;      
          resu = stmt.executeQuery(query);      
          }
          catch(SQLException ex) 
             {	  
              texto="ERRO: Execucao- " + ex + "\n";               
             }
     }
      catch(SQLException ex) 
        {	   
         texto="ERRO: Conexao-  " + ex + "\n";
        } 
   return resu;
}

javalinux, tem como tu postar o stack trace do erro todo? seguido do root cause q estoura no browser tb… :slight_smile:

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

java.lang.NullPointerException
	lista.doGet(lista.java:194)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:419)
	org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:133)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.

Matheus a mensagem que aparece é essa no brownser.
Caso possa me ajudar.
A linha 194 que aparece na mensagem de erro é no while, mas quando compila não aparece erro

a linha 194 do seu código é bem no while? aqui?

194: while(rs.next()){

então quer dizer q o seu ResultSet rs é nulo, ou seja, a chamada a consultar(“cidade”) esta retornando null[/code]

Tudo bem isso eu já imaginava só não sei como resolver.