如何从 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 获取列名列表 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
一次性获取`java.sql.ResultSet`行中的所有值