Java ResultSet - 根据索引获取列名

Rud*_*udy 19 java jdbc

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

我知道如果你想根据columnName获取索引,你可以通过使用来实现

int index = resultSet.findColumn(columnName);
Run Code Online (Sandbox Code Playgroud)

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

String column = resultSet.findColumnName(index);
Run Code Online (Sandbox Code Playgroud)

可能吗?

Jon*_*eet 39

我认为您需要查看ResultSet.getMetaData()哪个返回与a关联的元数据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.
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您需要为很多名称执行此操作,您可能需要构建一个HashMap<String, Integer>以轻松映射它们.


duf*_*ymo 7

当然 - 使用java.sql.ResultSetMetaData.

ResultSetMetaData meta = resultSet.getMetaData();
String column = meta.getColumnName(index);
Run Code Online (Sandbox Code Playgroud)