Поскольку ResultSet содержит данные, возвращенные из динамического SQL, существует ли какой-либо метод для определения того, содержит ли ResultSet определенное имя столбца? Например, если я запустите rs.getString ("Column_ABC");
но Column_ABC на самом деле не существует, он выбросит исключение. Как я могу проверить, может ли ResultSet получать данные из столбца с именем «Column_ABC»?
Используйте класс 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;
}
Чего я не понимаю, так это зачем вообще может понадобиться эта функция. Выполняемый запрос или хранимая процедура должны иметь известные результаты. Столбцы запроса должны быть известны. Необходимость в такой функции может быть признаком того, что где-то есть проблема с дизайном.
если не rs.getString("Column_ABC")= ничего, то ' ваш код здесь