Dúvidas com List e Classes

2 respostas
carlosvtnc

Olá...
Estou usando um List para armazenar os valores do banco, mas estou com duvida de como pegar os valores retornados da lista.
Segue abaixo o codigo:

public static List ExecQueryLogin(String User, String Pass)   {
    List Usuario = new LinkedList();
           
           try {
               Class.forName(Connectionn.driver); //Carrega o driver

               //Obtém a conexão com o banco
               Connection conn = DriverManager.getConnection(Connectionn.str_conn, Connectionn.usuario, Connectionn.senha);
               Statement stmt = conn.createStatement();
               
               String SQL = "SELECT * FROM Login WHERE Usuario = '"+User+"' and Senha = '"+Pass+"'";
               ResultSet rs = stmt.executeQuery(SQL); 
    
      if (rs.first()){
                   
    List<Login> lista = new LinkedList<Login>();  

    Login p = new Login();
    p.setIdPessoa(rs.getInt("Pessoa_idPessoa"));
    p.setUsuario(rs.getString("Usuario")); 
    p.setNivelacesso(rs.getInt("NivelAcesso_idNivelAcesso"));
    p.setStatus(rs.getInt("Status_idStatus")); 
  
    lista.add(p);  

               }
                
             }  
               
           catch (ClassNotFoundException ex) {
             JOptionPane.showMessageDialog(null, "Não foi possível carregar o driver.");
             ex.printStackTrace();
        }
        catch (SQLException ex) {
             JOptionPane.showMessageDialog(null, "Problema com o SQL");
             ex.printStackTrace();
       } 
      return Usuario;
  }

Como eu poderia pegar os valores retornados desse metodo ?
Ja pesquisei algumas coisas sobre iterator...

Seria algo como
Iterator i = ComandosSQL.ExecQueryLogin(Usuario, Senha).iterator();        
            while (i.hasNext()) { //percorrer toda a lista até o ultimo elemento  
            System.out.println(i.next()); //Mostra o valor da Lista 
}
??

como teria acessos aos metodos Gets da Classe Login ??

Obrigado.

2 Respostas

A

Cara, seu metodo retorna uma List,
vc criou o atributo usuario do tipo List, porem nao setou nada para ele,
e depois vc criou uma lista tambem do tipo List aonde vc adicionou os elementos da consulta,
entao vc terá que retornar em vez de usuario a lista.

e para ter acesso aos metodos get’s da classe Login, vc deve somente criar um objeto deste tipo,
como vc fez para pegar os parametros.

ex:

Login p = new Login();
p.getIdPessoa();

espero ter ajudado
boa sorte!!!

carlosvtnc

certo… eu nao tinha visto que eu tinha criado outra list…
mas pra eu pegar os valores da list ?? como eu faço ??

Estou colocando assim, mas onde eu colocaria corretamente o [color=red]p.getIdPessoa();[/color]???

Iterator i = ComandosSQL.ExecQueryLogin(Usuario, Senha).iterator(); while (i.hasNext()) { //percorrer toda a lista até o ultimo elemento Login p = new Login(); p.getIdPessoa(); System.out.println(i.next());//Mostra o valor da Lista }

Criado 23 de agosto de 2011
Ultima resposta 23 de ago. de 2011
Respostas 2
Participantes 2