Подтвердить что ты не робот

Java ResultSet - получить имя столбца на основе индекса

Я хочу знать, есть ли способ получить имя столбца на основе индекса из набора результатов.

Я знаю, что если вы хотите получить индекс на основе columnName, вы можете сделать это, используя

int index = resultSet.findColumn(columnName);

Но мне нужно наоборот, что-то вроде:

String column = resultSet.findColumnName(index);

Возможно ли это?

4b9b3361

Ответ 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);

Ответ 3

resultSet.getMetaData().getColumnName(index);

Ответ 4

Со стандартным JDBC вы можете получить набор результатов metadata:

ResultSetMetaData metadata = resultSet.getMetaData() 

Затем этот объект может быть запрошен для имени столбца (по индексу):

String columnFiveName = metadata.getColumnName(5)

Ответ 6

Вы должны это сделать, используя ResultSetMetaData:

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