Olá a todos e feliz 2005!
Qual é a melhor maneira para migrar os dados de um ResultSet para um ArrayList?
Estou fazendo isso com um laço, porém acredito que exista um modo mais otimizado/elegante para executar essa tarefa.
Agradeço suas opniões.
Olá a todos e feliz 2005!
Qual é a melhor maneira para migrar os dados de um ResultSet para um ArrayList?
Estou fazendo isso com um laço, porém acredito que exista um modo mais otimizado/elegante para executar essa tarefa.
Agradeço suas opniões.
converter de rs p/ arraylist eu não conheço, mas tem uma classe da commoms-collections que converte o rs p/ um bean, se as colunas forem as mesmas, e ai no laço vc adiciona na collection o bean…acho que ja fica mais elegante…
[]'s
int columns = rsmd.getColumnCount();
List result = new ArrayList();
while( rs.next )
{
Object[] row = new Object[ columns ];
for( int i = 0; i < columns.length; i++ )
row[ i ] = rs.get( i + 1 );
result.add( row );
}
Acho que deve ter algum jeito meis chique.
A melhor maneira é transformar seu resultset em objetos e colocá-los na Collection.
Um ResultSet não deve nunca passar a fronteira da camada de persistência. Você pode fazer em casos onde velocidade é muito importante, mas só em último caso, e após tentar do jeito OO e não obter performance satisfatória.
Resumindo: a menos que você tenha um gargalo aqui, trabalhe com objetos, não structs 
[]s
shoes tá coberto de razão 
Fora o caso de performance que ele citou, um jeito bem mais fácil, natural e elegante seria algo como:
List pessoas = new ArrayList();
while( rs.next )
{
Pessoa p = new Pessoa();
p.setNome( rs.getString( "nome" ) );
p.setCpf( rs.getString( "cpf" ) );
p.setFoto( rs.getBytes( "foto" ) );
pessoas.add( p );
}
Neste caso a sugestão do jgbt é bastante conveniente 
Ok pessoal, obrigado pelos comentários.
Creio que não estou fazendo tão errado assim, pois meu código esta quase igual ao postado no 2º post do LIPE.
Valeu!