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

코더님의 프로필 이미지
코더

작성한 질문수

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

JdbcTemplate와 RowMapper질문

해결된 질문

작성

·

334

0

public Optional findById(Long id) {

List result = jdbcTemplate.query("select * from member where id = ?", memberRowMapper(), id);

return result.stream().findAny(); }

 

private RowMapper memberRowMapper() {

return (rs, rowNum) -> { Member member = new Member(); member.setId(rs.getLong("id")); member.setName(rs.getString("name"));

return member; }; }

 

이 두 함수가 이해가 안되서 질문드립니다 ㅠ rs가 정확히 무엇인지 그리고 memberRowMapper()은 member객체를 반환하는데 어떻게 List로 받을수 있는지 궁금합니다

답변 1

2

안녕하세요. 코더님, 공식 서포터즈 OMG입니다.
query()의 반환 타입이 List입니다. SELECT의 결과가 1건이 아닌 다수가 발생할 수 있기 때문에 List는 자명합니다.

memberRowMapper()의 경우 자바의 문법인 람다식을 학습하셔야 이해가 되실텐데요.

텍스트로 설명드리기엔 프로그래밍 경험이 많지 않다면 제가 설명드리는 텍스트 만으로는 힘드실거라 생각하여 별도 자료(구글 검색, 유튜브, 인강, 책 등)으로 학습하신 후 코드를 다시 보셨을 때 이해가 안되는 부분을 질문 남겨주시면 답변 드리겠습니다.


감사합니다.

코더님의 프로필 이미지
코더
질문자

구글링을 해서 이해가 되었습니다 감사합니다 ㅎㅎ

코더님의 프로필 이미지
코더

작성한 질문수

질문하기