[Java / JdbcTemplate] RowMapper

clean·2023년 12월 29일
0

RowMapper Interface

row 단위로 result set을 매핑하기 위해 사용하는 JdbcTemplate의 가상 인터페이스

다음과 같이 RowMapper를 리턴하는 메소드 정의

    private RowMapper<Member> memberRowMapper() {
        return new RowMapper<Member>() {
            // 참고: Optin + Enter -> replace lambda로 람다식으로 바꿀 수 있다.
            @Override
            public Member mapRow(ResultSet rs, int rowNum) throws SQLException {
                Member member = new Member();
                member.setId(rs.getLong("id"));
                member.setName(rs.getString("name"));
                return member;
            }
        };
    }

다음과 같이 find 메소드에서 사용할 수 있다.

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


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

    @Override
    public List<Member> findAll() {
        return jdbcTemplate.query("select * from member", memberRowMapper());
    }
profile
블로그 이전하려고 합니다! 👉 https://onfonf.tistory.com 🍀

0개의 댓글