스프링 JdbcTemplate
@Override public Member save(Member member) { SimpleJdbcInsert jdbcInsert = new SimpleJdbcInsert(jdbcTemplate); jdbcInsert.withTableName("member").usingGeneratedKeyColumns("id"); Map<String,Object> parameters = new HashMap<>(); parameters.put("name",member.getName()); Number key = jdbcInsert.executeAndReeturnKey(new MapSqlParameterSource(parameters)); member.setId(key.longValue()); return member; }@Override public Optional<Member> findByName(Long id) { List<Member> result = jdbcTemplate.query("select * from member where name = ?", 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() { //sql 결과를 리스트로 반환. resultset결과를 memberRowMapper()에서 객체로 맵핑. return jdbcTemplate.query("select * from member", memberRowMapper());//객체 생성에 대한 것은 밑에서 콜백으로 정의. }private RowMapper<Member> memberRowMapper(){ //람다로 바꿀 수 있음!옵션 + 엔터 //jdbc return (rs, rowNum) -> { Member member = new Member(); member.setId(rs.getLong("id")); member.setName(rs.getString("name")); return member; }; }
Last updated