Development/Spring & SpringBoot

[스프링, Spring] JDBC queryForObject의 결과가 없을 때(null) 혹은 결과가 2개 이상일 때 - IncorrectResultSizeDataAccessException

컴공 K 2022. 2. 4. 00:01

Spring JDBC queryForObject의 결과가 없을 때(null) 혹은 2개 이상일 때

스프링 프로젝트에서 JDBC Template의 queryForObject 함수는 오직 하나의 행을 반환한다. 만약 쿼리문의 실행 결과로 행이 없거나 두 개 이상의 행이 있으면 IncorrectResultSizeDataAccessException이 발생한다.

 

이때, 만일 queryForObject 실행 결과로 행이 없거나 두 개 이상의 행이 있을 때에 대해 예외처리를 해주고 싶다면 아래와 같이 try catch 문을 사용해주면 된다.

try {
    JdbcTemplate jdbcTemplate;
    String sql = "select user_id from User where name = ?";
    return jdbcTemplate.queryForObject(sql, String.class, "유재석");
} catch (IncorrectResultSizeDataAccessException error) { // 쿼리문에 해당하는 결과가 없거나 2개 이상일 때
    return null;
}

 

 

 

 

 

 

https://bepoz-study-diary.tistory.com/367

 

[JDBC] 단일 Select을 위한 방법들

[JDBC] 단일 Select을 위한 방법들 Line id bigint auto_increment not null, name varchar(255) not null unique, color varchar(20) not null, primary key(id) 다음과 같은 Line 테이블이 있다. select * from..

bepoz-study-diary.tistory.com

 

728x90