Java ResultSet - 根据索引获取列名

20

我想知道是否有一种方法可以从resultSet中根据索引获取列名。

我知道如果你想根据列名获取索引,你可以使用

int index = resultSet.findColumn(columnName);

但是我需要另一种方式,就像这样:

String column = resultSet.findColumnName(index);

这可行吗?

6个回答

41

我认为您需要查看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>来方便地映射它们。


7
当然 - 使用 java.sql.ResultSetMetaData
ResultSetMetaData meta = resultSet.getMetaData();
String column = meta.getColumnName(index);

2
resultSet.getMetaData().getColumnName(index);

0

0

你应该可以使用ResultSetMetaData来完成这个任务:

ResultSetMetaData rsmd = resultSet.getMetaData();
String column = rsmd.getColumnName(index);

0

使用标准的JDBC,您可以获取结果集的元数据

ResultSetMetaData metadata = resultSet.getMetaData() 

然后可以通过索引查询该对象的列名:

String columnFiveName = metadata.getColumnName(5)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接