Java ResultSet - получить имя столбца на основе индекса
Я хочу знать, есть ли способ получить имя столбца на основе индекса из набора результатов.
Я знаю, что если вы хотите получить индекс на основе columnName, вы можете сделать это, используя
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);
Ответ 3
resultSet.getMetaData().getColumnName(index);
Ответ 4
Со стандартным JDBC вы можете получить набор результатов metadata:
ResultSetMetaData metadata = resultSet.getMetaData()
Затем этот объект может быть запрошен для имени столбца (по индексу):
String columnFiveName = metadata.getColumnName(5)
Ответ 5
Как насчет ResultSetMetaData
getColumnName()
?
Пример:
ResultSetMetaData metaData = resultSet.getMetaData()
metaData.getColumnName(1) ;
См. также
Ответ 6
Вы должны это сделать, используя ResultSetMetaData:
ResultSetMetaData rsmd = resultSet.getMetaData();
String column = rsmd.getColumnName(index);