Проверить на существование поля в ResultSet

211
19 декабря 2017, 17:58

Как проверить есть ли в ResultSet поле с заданным именем? То есть, перед тем, как сделать

resultSet.getInt("id")

нужно проверить есть ли данное поле в наборе.

Answer 1

Можно получить информацию обо всех колонках в данном resultSet а далее уже выполнить соответствующие проверки. Например, так:

private static boolean isExist(ResultSet resultSet, String columnName) throws SQLException {
    if (columnName == null || (columnName = columnName.trim()).isEmpty())
        return false;
    ResultSetMetaData metaData = resultSet.getMetaData();
    for (int i = 0; i < metaData.getColumnCount(); i++)
        if (columnName.equals(metaData.getColumnName(i)))
            return true;
    return false;
}
Answer 2

Вам не нужно делать такую проверку, т.к. она бессмысленна! Метод getInt() бросит исключение SQLException, если такого столбца не будет найдено в результирующем наборе. Это даст понять, где произошла ошибка и исправить ее.

READ ALSO
Как сделать help java?

Как сделать help java?

Пишу для курсовой программку на java с UIВстал вопрос о прикручивании help (инструкции, о программе и т

232
Учитывать доп. признак у строки

Учитывать доп. признак у строки

Есть метод, который в цикле заполняет List элементами из ДБУ элементов в ДБ есть дополнительный boolean признак, в зависимости от значения которого...

202
Обновление приложения Android

Обновление приложения Android

Создал свое первое приложение под AndroidНа настоящем устройстве после установки, если я хочу скачать с компьютера и установить другую версию,...

188
Обьясните алгоритм выполнения кода

Обьясните алгоритм выполнения кода

Этот код генерирует шахматную доску 8x8, но я не очень хорошо его понял

212