Имея rs
, экземпляр java.sql.ResultSet, как проверить, что он содержит столбец с именем "The Column"?
Как проверить, что ResultSet содержит специально названное поле?
Ответ 1
Вы можете использовать ResultSetMetaData для итерации по столбцам ResultSet и посмотреть, соответствует ли имя столбца указанному имени столбца.
Пример:
ResultSetMetaData rsMetaData = rs.getMetaData();
int numberOfColumns = rsMetaData.getColumnCount();
// get the column names; column indexes start from 1
for (int i = 1; i < numberOfColumns + 1; i++) {
String columnName = rsMetaData.getColumnName(i);
// Get the name of the column table name
if ("theColumn".equals(columnName)) {
System.out.println("Bingo!");
}
}
Ответ 2
Попробуйте использовать метод ResultSet # findColumn (String)
private boolean isThere(ResultSet rs, String column)
{
try
{
rs.findColumn(column);
return true;
} catch (SQLException sqlex)
{
logger.debug("column doesn't exist {}", column);
}
return false;
}
Ответ 3
Вы можете сделать:
rs.findColumn("theColum")
и проверьте наличие SQLException
Ответ 4
Используйте класс ResultSetMetaData
.
public static boolean hasColumn(ResultSet rs, String columnName) throws SQLException {
ResultSetMetaData rsmd = rs.getMetaData();
int columns = rsmd.getColumnCount();
for (int x = 1; x <= columns; x++) {
if (columnName.equals(rsmd.getColumnName(x))) {
return true;
}
}
return false;
}
Ответ 5
Используйте ResultSetMetaData объект, предоставленный объектом ResultSet
через rs.getMetaData()