Java 结果集 - 根据索引获取列名

2022-09-02 05:31:39

我想知道是否有办法根据 resultSet 中的索引获取列名。

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

int index = resultSet.findColumn(columnName);

但是我需要相反的方式,比如:

String column = resultSet.findColumnName(index);

可能吗?


答案 1

我认为您需要查看 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>


答案 2

当然 - 使用java.sql.ResultSetMetaData

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

推荐