Problema no Servelet

Boa tarde pessoal…

Tenho um pequeno problema aqui…
Não consigo fazer um return lista no meu código, alguém pode me ajudar???

Já pesquisei mas para mim está certinho, não sei o que ocorre.

Obrigado!!!

public class ListaClienteDao { public ArrayList Listar(String rg) throws SQLException { try{ ArrayList lista = new ArrayList(); Conexao connection = new Conexao(); PreparedStatement pst = connection.obterConexao().prepareStatement("Select COD_RG,NOME,TELEFONE,ENDERECO from TBCLIENTE WHERE = COD_RG = rg"); ResultSet rs=pst.executeQuery(); if(rs.next()){ lista.add(rs.getInt("COD_RG")); lista.add(rs.getString("NOME")); lista.add(rs.getInt("TELEFONE")); lista.add(rs.getString("ENDERECO")); } rs.close(); pst.close(); }catch(SQLException e){ System.out.println(e); } } return lista; // <------ O erro está aqui }

Declare lista fora do bloco try/catch.

Deu o mesmo erro.
Não sei o que fazer, mas preciso retornar essa lista para ter os dados do banco…

Agora que vi.Você está mandando retornar depois de encerrar o método. Coloque o return lista um fecha chave antes.

[code]
public class ListaClienteDao {
public List Listar(String rg) throws SQLException {

    PreparedStatement pst = null;
    ResultSet rs = null;

    try {
        Conexao connection = new Conexao(); 

        PreparedStatement pst = connection.obterConexao().prepareStatement("Select COD_RG,NOME,TELEFONE,ENDERECO from TBCLIENTE WHERE COD_RG = ?");
        pst.setString(1, rg);

        ResultSet rs = pst.executeQuery();

        ArrayList lista = new ArrayList();

        if (rs.next()) {

           lista.add(rs.getInt("COD_RG"));
           lista.add(rs.getString("NOME"));
           lista.add(rs.getInt("TELEFONE"));
           lista.add(rs.getString("ENDERECO")); 
       }

       return lista;

    } catch(SQLException e) {
          System.out.println(e);
    }
    finally {
        if (rs != null)
            rs.close();
        if (pst != null)
            pst.close(); 
    }
}

}[/code][/quote]

Perguntas:

Por que retornar um ArrayList e não um objeto Cliente?
Por que COD_RG é String e ao pegar do banco ele é int?

Valeu mano consegui mas acho que esse vai ser o menor dos problemas …
estou tentando listar esse caras que retornei para o meu servelet…
mas quando eu clico pesquizar me traz uma página em branco…
será que vc pode dar uma olhada ara ver se tem alguma coisa errada ai???
Sou iniciante por isso é meio díficil…

Servelet


public class ListaCliente extends HttpServlet {protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
             String rg = request.getParameter("rg");
             ListaClienteDao listadao = new ListaClienteDao();
             ArrayList lista = listadao.Listar(rg);
             out.println("<html>");
             out.println("<body>");
             out.println("<table border =1>"); 
             for(int i=0; i<lista.size();i++){
                out.print("<tr>");
                    out.println("<td>Rg:</td>");
                    out.println("<td>lista.get(i)</td>");
                    out.println("<td>Nome:</td>");
                    out.println("<td>lista.get(i)</td>");
                    out.println("<td>Telefone:</td>");
                    out.println("<td>lista.get(i)</td>");
                    out.println("<td>Endereço:</td>");
                    out.println("<td>lista.get(i)</td>");

                out.print("</tr>");
                
                
             }
                out.print("</table>");
        } catch (SQLException ex) {
               out.println(ex);
               ex.printStackTrace();
            
 

               out.close();
 
        } finally{
            
        }
        out.println("</body>");
        out.println("</html>");
    } 

    // <editor-fold defaultstate="collapsed" desc="Métodos HttpServlet. Clique no sinal de + à esquerda para editar o código.">
    /** 
    * Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

    /** 
    * Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }

    private String setSring(String string) {
        throw new UnsupportedOperationException("Not yet implemented");
    }
    // </editor-fold>
}

O Dao vc já está logo a cima.

Respondendo o Bruno…

Então cara eu passo como uma string pq é do request que pego esse rg e no banco ele é um Int
por isso está assim…
não sei se é o certo mas estou tentando fazer assim se tiver errado vcs me falam ai

e retorno uma lista pq eu populei ele com todos os campos e depois so quero descarregar o meu array
no meu servelet

Bom dia Pessoal…

Por gentileza tem alguem que pode me ajudar nessa questão?

Não da erro nenhum somente aparece uma página em branco…

Obrigado!!!

Servelet

public class ListaCliente extends HttpServlet {protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
             String rg = request.getParameter("rg");
             ListaClienteDao listadao = new ListaClienteDao();
             ArrayList lista = listadao.Listar(rg);
             out.println("<html>");
             out.println("<body>");
             out.println("<table border =1>"); 
             for(int i=0; i<lista.size();i++){
                out.print("<tr>");
                 out.println("<td>lista.get(i)</td>");
                out.print("</tr>");
             }
                out.print("</table>");
        } catch (SQLException ex) {
               out.println(ex);
               ex.printStackTrace();
            
 

               out.close();
 
        } finally{
            
        }
        out.println("</body>");
        out.println("</html>");
    } 

Dao

public class ListaClienteDao {
    
    ArrayList lista = new ArrayList();
   
    public ArrayList Listar(String rg) throws SQLException {
       try{   
           Conexao connection = new Conexao(); 
           PreparedStatement pst = connection.obterConexao().prepareStatement("Select COD_RG,NOME,TELEFONE,ENDERECO from TBCLIENTE WHERE = COD_RG = rg");
           ResultSet rs=pst.executeQuery();
           if(rs.next()){
               lista.add(rs.getInt("COD_RG"));
               lista.add(rs.getString("NOME"));
               lista.add(rs.getInt("TELEFONE"));
               lista.add(rs.getString("ENDERECO")); 
           }
           rs.close();
           pst.close(); 
        }catch(SQLException e){        
              System.out.println(e);       
        }   
       return lista;
    } 
         
    
}  

Já debugou pra ver se o SQL retorna algum registro?