如何从 java.sql.ResultSet 获取列名列表 [重复]

Posted

技术标签:

【中文标题】如何从 java.sql.ResultSet 获取列名列表 [重复]【英文标题】:How to get column name list from java.sql.ResultSet [duplicate] 【发布时间】:2017-08-14 08:59:52 【问题描述】:
try

   connection = dataSource.getConnection();
   callableStatement.setInt(2, clientId);
    ....... // some stuff
   resultSet = callableStatement.executeQuery();


现在我有一个 resultSet ,但不知道列名?我该如何找回它?

【问题讨论】:

【参考方案1】:

resultSet.getMetadata() 会返回一个 ResultSetMetaData 对象,该对象具有列名(例如 resultSet.getMetadata().getColumnName(1)

【讨论】:

如果你想知道结果集的列名,那么getColumnLabel更正确。 getColumnLabel 返回别名或原始列名(如果没有别名),而getColumnName 返回基础列的名称(如果有)。【参考方案2】:

显示这个:

ResultSetMetaData rsmd = resultSet.getMetaData();
String name = rsmd.getColumnName(1);

【讨论】:

【参考方案3】:

你可以使用 ResultSetMetaData

 ResultSetMetaData metadata = resultSet.getMetaData();
int columnCount = metadata.getColumnCount();

ArrayList<String> columns = new ArrayList<String>();
for (int i = 1; i < columnCount; i++) 
  String columnName = metadata.getColumnName(i);
  columns.add(columnName);

【讨论】:

【参考方案4】:

以下代码有助于获取表的列名。

ResultSetMetaData rsmd = resultSet.getMetaData();
int columnsCount = rsmd.getColumnCount();
int i=1;
while (i <= columnsCount)
    String columnName = rsmd.getColumnName(i);
    i++;

【讨论】:

【参考方案5】:

试试这个...

ResultSetMetaData    rsmd    =    resultSet.getMetaData();
int    columnCount    =    rsmd.getColumnCount();
// The column count starts from 1
for    (int    i=1;   i<=columnCount;    i++ ) 
  String name    =    rsmd.getColumnName(i);
  // Do stuff with name

【讨论】:

添加一个小解释来解释这段代码。

以上是关于如何从 java.sql.ResultSet 获取列名列表 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 JDBC ResultSet 中获取列数?

一次性获取`java.sql.ResultSet`行中的所有值

如何超时 java.sql.ResultSet

java swing如何把获取的文本框值添加到Table表格中,能否给个简单的例子,急用!急用!谢谢

JDBC的结果集

java.sql.ResultSet、CallableStatement、SQLInput 没有通用接口