Как я могу определить, существует ли имя столбца в ResultSet?

Поскольку ResultSet содержит данные, возвращенные из динамического SQL, существует ли какой-либо метод для определения того, содержит ли ResultSet определенное имя столбца? Например, если я запустите rs.getString ("Column_ABC"); но Column_ABC на самом деле не существует, он выбросит исключение. Как я могу проверить, может ли ResultSet получать данные из столбца с именем «Column_ABC»?

62
задан informatik01 3 August 2013 в 21:44
поделиться

2 ответа

Используйте класс 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;
}

Чего я не понимаю, так это зачем вообще может понадобиться эта функция. Выполняемый запрос или хранимая процедура должны иметь известные результаты. Столбцы запроса должны быть известны. Необходимость в такой функции может быть признаком того, что где-то есть проблема с дизайном.

95
ответ дан 24 November 2019 в 16:52
поделиться

если не rs.getString("Column_ABC")= ничего, то ' ваш код здесь

-17
ответ дан 24 November 2019 в 16:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: