Java + postgresql + verificar nome das colunas de uma tabela

Bom dia galera, estou com um novo problema e rogo a ajuda de voces…
Eu preciso de um comando que retorna o nome das colunas de uma determinada tabela, tipo assim:

Em uma de minhas telas eu vou informar em um inputText um nome, entao eu preciso pegar esse nome e verificar se ele é igual ao nome de uma das minhas colunas dentro de uma tabela qualquer.

Imagino eu que deva existir um comando que retorne o nome das colunas de uma determinada tabela, dai entao eu comparo se o nome que eu informei no inputText é igual ao nome de uma das colunas da minha tabela.

Me parece que o comando COL_NAME do SQL faz algo parecido, mas eu nao tenho certeza.

Se alguem puder me ajudar eu fico muito grato…
Valeu gente…

Execute o comando no banco

\d <nomeTabela>

Veja o fórum

http://archives.postgresql.org/pgsql-novice/2005-10/msg00116.php

flw

Use ResultSetMetaData
http://www.java2s.com/Code/Java/Database-SQL-JDBC/GetcolumnnamesofatableusingResultSetMetaData.htm

use o ResultSetMetaData. ele traz todas as informações da tabela.

http://java.sun.com/j2se/1.4.2/docs/api/java/sql/ResultSetMetaData.html

hahhahahah finotti foi mais rápido…kkkk

Valeu galera a ajuda de voces foi muito util e resolveu meu problema.
No meu caso ficou + ou - assim:

String sql = “SELECT * from tabela”;

ps = getConexao().getPreparedStatement(sql);
rs = getConexao().query(ps);

ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();

boolean teste = false;

for(int cont = 1; cont < numberOfColumns; ++cont){
if(campoInputText().toLowerCase().equals(rsmd.getColumnLabel(cont))){
teste = true;
break;
}
}

if(teste == false){
     throw new Exception("Coluna Inexistente! ");
}

Valeu d+…

só toma ciudado com esse select * ai. se seu banco permite usar limit ou top e use, pq senão vc vai fazer um table scan só pra pegar o nome das colunas, que também vem quando vc busca um registro só. não tenho certeza, mas acho que mesmo que o resultset esteja vazio vc pode pegar o resultsetmetadata

ixiiiiiiiiiii Mario é verdade valeu dnovo kkkkkkk

Um velho truque é usar WHERE 1 = 2, nunca vai devolver dados… :slight_smile:

blz pmlm…é isso ai

Você pode ler as informações direto do catálogo do banco… Os nomes das tabelas podem variar, no Mysql é assim:

use information_schema;
select COLUMN_NAME
from COLUMNS
where TABLE_NAME="suaTabela";
mysql> use information_schema;
Database changed
mysql> select column_name from columns where table_name="category";
+-------------+
| column_name |
+-------------+
| id          |
| name        |
| description |
| imageurl    |
+-------------+
4 rows in set (0.02 sec)

mysql>