Pegando todas as colunas do ResultSet!

2 respostas
J
Dae galera!! Eu estou com a seguinte dúvida!! Eu preciso pegar os valores e os nomes de todas as colunas do select em questão!! Como eu poderia fazer isso sem ter que fazer algo assim:
//Recupera registros
			while( registros.next()) {
					
				Codigo codigo = new Codigo();
				
				codigo.setCd_codigo( registros.getInt( 1 ));
				codigo.setId_codigo( registros.getString( 2 ));
				codigo.setDescricao( registros.getString( 3 ));
				
				Categoria categoria = new Categoria();
				categoria.setCd_categoria( registros.getInt( 4 ));
				categoria.setIdCategoria( registros.getString( 5 ));
				codigo.setCategoria( categoria );
				
				lista.add( codigo );
				
			}
Mas queria algo que usando um laço eu pudesse pegar todas as colunas e não ter que especificar qual eu quero pegar!!!
public static void listar() {
		
		try {
			
//			Recupera a conexão
			Connection conn = Conexao.getConnection();
			
			//Instancia obejto para execução de comando sql
			PreparedStatement psta = conn.prepareStatement( "select * from tabela" );
				
			//executa as instruções sql e as armazena num ResultSet
			ResultSet registros = psta.executeQuery();
			
			//Recupera registros
			while( registros.next()) {
				// Como pegar todas as colunas que fazem parte do select???
				// Queria imprimir todas as colunas desse registro, se ela
     				// tiver duas colunas no select, então é só essas que mostraria				
				// Algo do tipo:
                                for( int i = 0; i < totalDEColunas; i++ ) {
	                                System.out.println( "Coluna: " + registros.getColumn( i ) + " - Valor: " + 						registros.getValue()); // Só a idéia
                                }
				
			}
			
			//Libera objetos de resultado e execução de instruções sql
			registros.close();
			psta.close();
			
		} catch( SQLException e ) {
			System.out.println( "Erro(CodigoDAO.listar()):" + e.getMessage());
		} catch (Exception e) {
			e.printStackTrace();
		}
	
	}
Entenderam? Valeu e fique com Deus!!!

2 Respostas

J

Veja se serve:

int colunas = res.getMetaData().getColumnCount();

for(int i=0;i<colunas;i++){
   System.out.println(res.getObject(i));
}
J

Valeu cara!! Eu tinha feito parecido com isso mesmo!! Tinha achado um tutorial na net!!
Valeu mesmo!!!
Fica com Deus!!!

Criado 20 de dezembro de 2006
Ultima resposta 20 de dez. de 2006
Respostas 2
Participantes 2