我想知道是否有方法根據resultSet中的索引獲取列名。Java結果集 - 根據索引獲取列名
我知道,如果你希望得到一個基於列名的索引,你可以通過使用
int index = resultSet.findColumn(columnName);
但我需要周圍的其他方式,像:
String column = resultSet.findColumnName(index);
是有可能嗎?
我想知道是否有方法根據resultSet中的索引獲取列名。Java結果集 - 根據索引獲取列名
我知道,如果你希望得到一個基於列名的索引,你可以通過使用
int index = resultSet.findColumn(columnName);
但我需要周圍的其他方式,像:
String column = resultSet.findColumnName(index);
是有可能嗎?
我認爲你需要看看ResultSet.getMetaData()
返回與ResultSet
相關的元數據。
然後,您可以迭代列(使用getColumnCount()
找出有多少列)以查找具有給定名稱的列,並使用進行檢查。不要忘記,列索引是基於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>
輕鬆映射。
當然 - 使用java.sql.ResultSetMetaData。
ResultSetMetaData meta = resultSet.getMetaData();
String column = meta.getColumnName(index);
resultSet.getMetaData().getColumnName(index);
採用標準的JDBC,就可以得到結果集的metadata:
ResultSetMetaData metadata = resultSet.getMetaData()
該對象可被查詢的列名(指數):
String columnFiveName = metadata.getColumnName(5)
怎麼樣ResultSetMetaData
的getColumnName()
?
例如:
ResultSetMetaData metaData = resultSet.getMetaData()
metaData.getColumnName(1) ;
另請參見
您應該可以使用ResultSetMetaData:
ResultSetMetaData rsmd = resultSet.getMetaData();
String column = rsmd.getColumnName(index);