인프런 커뮤니티 질문&답변

황대선님의 프로필 이미지
황대선

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

22 강 findById()메소드 질문

작성

·

160

1

1.예

2.예

3.예

 

안녕하세요, 코드에대해 궁금한 점이 생겨 질문드립니다. 잘 부탁 드립니다.

질문 :

@Override
public Optional<Member> findById(Long id) {
    List<Member> result = jdbcTemplate.query("select * from member where id = ?", memberRowMapper());
    return result.stream().findAny();
}

select * from member where id = ? 의 결과값은 null 아니면 1개인데 List<Member> result를 사용하는 이유를 모르겠습니다. 혹시 리턴값이 Optional<Member>이기 때문인건가요??

 

아직 잘 몰라서 바보같은 질문일 수도 있지만, 잘 부탁드립니다!!

답변 1

1

안녕하세요. 황대선님, 공식 서포터즈 OMG입니다.


image

select * from member where id = ? 의 결과값은 null 아니면 1개인데

=> JdbcTemplate에서 구현한 query()는 List로 반환하도록 되어 있는데요,

말씀하신 규약은 개발하는 개발자가 정한 기준입니다. 또한 select 뿐만 아니라, delete, update 등 다른 쿼리를 사용한다면 어떨까요?

그러한 경우를 고려하여 query는 메서드 오버로딩이 되어 있습니다 ^^(리턴 타입을 확인해주세요)

image

 

 


감사합니다.

 

 

황대선님의 프로필 이미지
황대선
질문자

감사합니다^^

황대선님의 프로필 이미지
황대선

작성한 질문수

질문하기