• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

JdbcTemplate와 RowMapper질문

23.02.06 17:37 작성 조회수 272

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님의 프로필

OMG

2023.02.06

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

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

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


감사합니다.

코더님의 프로필

코더

질문자

2023.02.07

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