Com java.sql.ResultSet
existe uma maneira de obter o nome de uma coluna como String
usando o índice da coluna? Eu dei uma olhada no documento da API, mas não consigo encontrar nada.
233
Você pode obter essas informações nos ResultSet
metadados. Consulte ResultSetMetaData
por exemplo
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();
String name = rsmd.getColumnName(1);
e você pode obter o nome da coluna a partir daí. Se você fizer
select x as y from table
em seguida, rsmd.getColumnLabel()
você irá obter o nome da etiqueta recuperada também.
rsmd.getColumnLabel
se você recupera colunas com rótulos (por exemploSELECT columnName AS ColumnLabel
for (int i = 1; i <= rsmd.getColumnCount(); i++) String name = rsmd.getColumnName(i);
getColumnName()
o nome da coluna original se não estiver usando aAS
alias de nomeação?AS
não for especificado, o valor retornadogetColumnLabel
será o mesmo que o valor retornado pelogetColumnName
método." . Em quase todos os casos, você deve usar emgetColumnLabel
vez degetColumnName
.Além das respostas acima, se você estiver trabalhando com uma consulta dinâmica e desejar os nomes das colunas, mas não souber quantas colunas existem, poderá usar o objeto ResultSetMetaData para obter o número de colunas primeiro e depois percorrê-las. .
Alterando o código de Brian:
fonte
i <= columnCount
.Você pode usar o objeto ResultSetMetaData ( http://java.sun.com/javase/6/docs/api/java/sql/ResultSetMetaData.html ) para isso, assim:
fonte
Esta pergunta é antiga e as respostas anteriores corretas também. Mas o que eu estava procurando quando encontrei esse tópico era algo como esta solução. Espero que ajude alguém.
fonte
Using getMetaData ();
EDIT: Isso funciona com o PostgreSQL também
fonte
Nome da tabela: pessoa Campo ID do tipo de dados VARCHAR cname VARCHAR dob DATE
fonte
Quando você precisa dos nomes das colunas, mas não deseja obter entradas:
NOTA: Funciona apenas com MySQL
fonte
fonte
As instruções SQL que lêem dados de uma consulta ao banco de dados retornam os dados em um conjunto de resultados. A instrução SELECT é a maneira padrão de selecionar linhas de um banco de dados e visualizá-las em um conjunto de resultados. A
**java.sql.ResultSet**
interface representa o conjunto de resultados de uma consulta ao banco de dados.Usando
MetaData of a result set to fetch the exact column count
http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSetMetaData.html
e ainda mais para vinculá-lo à tabela de modelo de dados
tutorial muito bom aqui: http://www.tutorialspoint.com/jdbc/
fonte
@Cyntech está certa.
Caso sua tabela esteja vazia e você ainda precise obter os nomes das colunas da tabela, você pode obter sua coluna como tipo Vector, consulte o seguinte:
fonte
fonte
Se você deseja usar o spring jdbctemplate e não deseja lidar com a equipe de conexão, pode usar o seguinte:
fonte
Você pode obter o nome e o valor da coluna de resultSet.getMetaData (); Este código funciona para mim:
fonte
Eu sei, essa pergunta já foi respondida, mas provavelmente alguém como eu precisa acessar um nome de coluna em
DatabaseMetaData
por rótulo em vez de índice:fonte