JdbcTemplate를 사용하여 DB의 정보를 가져올 때, query와 queryForObject를 사용하는데, 차이점을 간단하게나마 설명하겠다.
query
query는 기본적으로 반환형이 List이다. 즉, 한개 이상의 결과를 반환할 때 사용한다.
queryForObject
queryForObject의 반환형은 rowMapper 처리한 '단일' 객체이다. 즉 rowMapper 반환형의 객체 하나만 등장하는 것이다.
그렇다면 queryForObject의 사용 이유는 무엇일까?
단일 객체만 존재하는 것을 확인하고 싶은 경우 라고 할 수 있다.
query 실행 결과가 없으면, EmptyResultDataAccessException
query 실행 결과가 두개 이상이면, IncorrectResultSizeDataAccessException
이 발생한다.