Задать вопрос
mitaichik
@mitaichik

JdbcTemplate: как правильно выбирать один объект?

Задача: нужно вернуть из БД объект или null если он не найден

Есть JdbcTemplate.queryForObject. В случае если записи нет - он выкинет эксепшн. Чтобы вернуть null рекомендуют просто ловить этот эксепшн и возвращать null, но мне кажется это не самый лучший способ.

Есть вот такой метод: query(String sql, ResultSetExtractor rse), но он почему-то вызывает ResultSetExtractor.extractData даже если БД вернула 0 строк.

В общем - подскажите как правильно. Заранее спасибо!
  • Вопрос задан
  • 688 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
  • Skillfactory
    Профессия Java-разработчик
    14 месяцев
    Далее
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Всё зависит от конкретных потребностей и/или предпочтений. Кому-то может оказаться удобнее поймать SqlException вне метода, получающего данные, а кому-то получить null и понять, что записи не найдено.
В queryForObject можно просто передать маппер и не думать об обработке каждой записи ResultSet.
А в ResultSetExtractor можно без Exception обработать ситуацию как отсутствия найденных записей, так и получения нескольких записей, если ожидалась только одна.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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