Como alimentar um ArrayList a partir de um ResultSet
3 respostas
P
petter
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{ResultSetrs=conexao2.stm.executeQuery();}catch(SQLExceptionex){ex.printStackTrace();}
conexao2.setSelect("select e.cod_cli, e.razao_soc, true Flag from bebwilson.clientes e"+" where e.cod_cli = "+Main.jTextFieldConsulta.getText());try{ResultSetrs=conexao2.stm.executeQuery();ArrayListlist=newArrayList();while(rs.next){list.add(rs.getString("NOME_DA_COLUNA"));}Object[]arrayObjetos=list.toArray();}catch(SQLExceptionex){ex.printStackTrace();}returnarrayObjetos;
L
Luiz_Gustavo
Opa… Petter, esse código eu tinha postado no outro tópico… trata exatamente disso que você precisa:
publicList<Evento>obterEventos()throwsSQLException,Exception{EventoumEvento=null;List<Evento>eventos=newArrayList<Evento>();DAOLancamentodaoLancamento=newDAOLancamento();try{conn=factoryConexao.getConnection();StringSQL="SELECT * FROM evento ORDER BY data DESC";PreparedStatementstmt=conn.prepareStatement(SQL,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);ResultSetresultSet=stmt.executeQuery();while(resultSet.next()){umEvento=newEvento();umEvento.setId(resultSet.getInt("id"));umEvento.setDescricao(resultSet.getString("descricao"));umEvento.setData(resultSet.getDate("data"));// o evento já sai com todos os seus lançamentosumEvento.setLancamentos(daoLancamento.obterLancamentos(umEvento));eventos.add(umEvento);umEvento=null;}stmt.close();}finally{conn.close();returneventos;}}
[]'s
L
Luiz_Gustavo
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.