Como alimentar um ArrayList a partir de um ResultSet

3 respostas
P

Pessoal tenho uma select que alimenta um ResultSet e agora preciso passar o meu ResultSet para um ArrayList e após isso preciso converter esse ArrayList para Array. Alguém tem sabe como?
Olha o código de como alimento o meu ResultSet:

conexao2.setSelect("select e.cod_cli, e.razao_soc, true Flag from bebwilson.clientes e"
                               + " where e.cod_cli = " + Main.jTextFieldConsulta.getText());
            try {
                ResultSet rs = conexao2.stm.executeQuery();                   
            } catch (SQLException ex) {
                ex.printStackTrace();
            }

3 Respostas

E

segue codigo abaixo…

conexao2.setSelect("select e.cod_cli, e.razao_soc, true Flag from bebwilson.clientes e"
                                + " where e.cod_cli = " + Main.jTextFieldConsulta.getText());
             try {
                  ResultSet rs = conexao2.stm.executeQuery();       
                  ArrayList list = new ArrayList();
                  while(rs.next){
                   list.add(rs.getString("NOME_DA_COLUNA"));
                  }
                  Object[] arrayObjetos = list.toArray(); 


                      
             } catch (SQLException ex) {
                 ex.printStackTrace();
             } 
return arrayObjetos;
L

Opa… Petter, esse código eu tinha postado no outro tópico… trata exatamente disso que você precisa:

public List<Evento> obterEventos() throws SQLException, Exception{        
         
         Evento umEvento = null;
         List<Evento> eventos = new ArrayList<Evento>();
         DAOLancamento daoLancamento = new DAOLancamento();
         
         try{             
             
            
             conn = factoryConexao.getConnection();
           
             String SQL = "SELECT * FROM evento ORDER BY data DESC" ;
             PreparedStatement stmt = conn.prepareStatement(SQL, 
                                                          ResultSet.TYPE_SCROLL_INSENSITIVE, 
                                                          ResultSet.CONCUR_READ_ONLY);
                        
             ResultSet resultSet = stmt.executeQuery();       
 
             while (resultSet.next()){
 
                 umEvento = new Evento();
 
                 umEvento.setId(resultSet.getInt("id"));
                 umEvento.setDescricao(resultSet.getString("descricao"));  
                 umEvento.setData(resultSet.getDate("data"));                
                 
                 // o evento já sai com todos os seus lançamentos
                 umEvento.setLancamentos(daoLancamento.obterLancamentos(umEvento));
                 
                 eventos.add(umEvento);                        
                 umEvento = null;
             }                
 
             stmt.close();
         }
         finally{   
 
             conn.close();
             return eventos;
         }
     }

[]'s

L

Ahh… a propósito, respondendo a pergunta que você fez no outro (que eu vou responder lá também):
A classe evento é uma classe qualquer, poderia ser uma classe Cliente, por exemplo. Essa classe Evento é a classe cujos objetos eu preciso colocar em um ArrayList.
No contexto do outro exemplo, ela é a classe cujos objetos eu quero apresentar no JTable.
Quanto às classes DAO (tanto DAOEvento quanto DAOLançamento) são classes responsáveis por acessar o banco de dados, para rotinas como inserção, alteração, consulta, exclusão… sacou? Então todos os métodos relacionado a banco de dados, inclusive esse que faz a consulta e retorna um ArrayList, ficam nessa classe DAO.

Bom, espero que tenha ajudado.

[]'s

Criado 26 de junho de 2006
Ultima resposta 26 de jun. de 2006
Respostas 3
Participantes 3