Como recuperar nome dos campos de um ResultSet?!

Oi pessoal
Estou usando PreparedStatement para executar um “select *”
Não sei o nome dos campos da tabela!
É possível recuperar o nome dos campos de um ResultSet?!
Valeu!

Dê uma pesquisada em “MetaData” - “ResultSetMetaData” na documentação Java, mas pra te dar noção veja um pequeno trecho usando essa API:

  if (!con.isReadOnly()) con.setReadOnly(true);
      sta = con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
      res = sta.executeQuery("SELECT * FROM aluno");
      if (res!=null){
        ResultSetMetaData meta=null;
        meta = res.getMetaData();
        int numberOfColumns = meta.getColumnCount();
        System.out.println("O numero de colunas das linhas do ResultSet e "+numberOfColumns);
        for (int contador=1; contador<=numberOfColumns; contador++){
          System.out.print(meta.getColumnName(contador)+", "+meta.getColumnTypeName(contador));
          if ((meta.getColumnTypeName(contador)).equals(new String("CHAR")))
            System.out.print("("+meta.getPrecision(contador)+")");
          else if ((meta.getColumnTypeName(contador)).equals(new String("VARCHAR")))
            System.out.print("("+meta.getPrecision(contador)+")");
          else if ((meta.getColumnTypeName(contador)).equals(new String("VARCHAR2")))
            System.out.print("("+meta.getPrecision(contador)+")");
          else if ((meta.getColumnTypeName(contador)).equals(new String("DATE")))
            System.out.print("");
          else
            System.out.print("("+meta.getPrecision(contador)+","+meta.getScale(contador)+")");
          if (meta.isNullable(contador)==1) System.out.println(", NULL");
          else                     System.out.println(", NOT NULL");
        }
      }
      else System.out.println("A consulta nao retornou nenhuma linha");

Tutorial sobre Metadados do GUJ:

http://www.guj.com.br/java.tutorial.artigo.24.1.guj

Nuuoossa cara!!! Resolveu meu problema!!! Brigadão!

Dica número um:
Procure nunca usar “select *” em queries dentro de seu código.
É que depois você pode se dar mal se alguém mudar o layout da tabela (por exemplo, inserir mais um campo no meio dos outros campos, ou deletar um campo.)
É mais fácil você descobrir que sua query parou de funcionar porque o campo “X” foi removido da tabela, que ter um problema que só ocorre quando vocë tenta puxar o campo 10 e ele vem com o tipo errado (porque é o campo errado).
Tal facilidade (select ) é para ser usada naquelas interfaces de linha de comando, tais com o osql (MS SQL Server) ou o SQLPlus (Oracle).
Pior ainda é se você, além de usar “select *”, ainda usa “getString(1)”, “getInt(2)” etc, ou seja, tudo posicional em vez de por nome.

//rs seu resultset
rs.getString(0);

Vc pode pegar pelo nome dos campos da tabela, ou pelo indice =)…

rs.getString(“nomecampo”);
ou
rs.getString(0);

=)
Tenta ae.

[edite]
Entendi agora sua duvida…
Ignora o q ta escrito acima =)… Isso são pra recuperar valores hehehe…
Não sei se é possivel recuperar os nomes dos campos.