【发布时间】:2011-09-18 13:23:20
【问题描述】:
我想知道是否有办法根据结果集中的索引获取列名。
我知道如果你想根据 columnName 获取索引,你可以使用
int index = resultSet.findColumn(columnName);
但我需要相反的方式,例如:
String column = resultSet.findColumnName(index);
有可能吗?
【问题讨论】:
我想知道是否有办法根据结果集中的索引获取列名。
我知道如果你想根据 columnName 获取索引,你可以使用
int index = resultSet.findColumn(columnName);
但我需要相反的方式,例如:
String column = resultSet.findColumnName(index);
有可能吗?
【问题讨论】:
我认为您需要查看ResultSet.getMetaData(),它返回与ResultSet 关联的元数据。
然后您可以遍历列(使用getColumnCount() 找出有多少列)以查找具有给定名称的列,并使用getColumnName() 检查。不要忘记列索引是从 1 开始的,而不是从 0 开始的。比如:
ResultSetMetaData metaData = resultSet.getMetaData();
int count = metaData.getColumnCount();
for (int i = 1; i <= count; i++)
{
if (metaData.getColumnName(i).equals(desiredColumnName))
{
// Whatever you want to do here.
}
}
如果您需要为很多名称执行此操作,您可能需要构建一个HashMap<String, Integer> 以轻松映射它们。
【讨论】:
您应该可以使用ResultSetMetaData:
ResultSetMetaData rsmd = resultSet.getMetaData();
String column = rsmd.getColumnName(index);
【讨论】:
ResultSetMetaData 'sgetColumnName() 怎么样?
例如:
ResultSetMetaData metaData = resultSet.getMetaData()
metaData.getColumnName(1) ;
另见
【讨论】:
使用标准JDBC,可以得到结果集的metadata:
ResultSetMetaData metadata = resultSet.getMetaData()
然后可以查询该对象的列名(按索引):
String columnFiveName = metadata.getColumnName(5)
【讨论】:
resultSet.getMetaData().getColumnName(index);
【讨论】:
当然 - 使用java.sql.ResultSetMetaData。
ResultSetMetaData meta = resultSet.getMetaData();
String column = meta.getColumnName(index);
【讨论】: