스프링 DB 접근(2) - JdbcTemplate

한지개·2023년 5월 20일
0

spring

목록 보기
6/7

스프링 JdbcTemplate

  • 순수 Jdbc와 동일한 환경설정을 하면 됨
  • 스프링 JdbcTemplate과 MyBatis 같은 라이브러리는 JDBC API에서 본 반복 코드를 대부분 제거해준다. 하지만 SQL은 직접 작성해야 함.

생성자jdbcTemplate는 인젝션을 받을 수 x, dataSource로 인젝션 받아야 함.
jdbcTemplate = new JdbcTemplate(dataSource);
위처럼 쓰면 스프링이 자동으로 dataSource 인젝션

(+)
생성자가 하나만 있을 경우 스프링 빈으로 등록할때 @Autowired 생략할 수 있음.


memberRowMapper()findById()에서 사용할 memberRowMapper()


alt+enter - Replace with lambda!람다식으로 변경해줌.


findById()jdbctemplate에서 qurey 날려서 결과를 memberRowMapper()을 통해 mapping 해주고, 리스트로 값을 받아서 optional로 반환함.(return result.stream().findAny();)

jdbcMemberRepository 코드와 비교해보면 단 두줄로 구현함. (jdbcTemplate 라이브러리를 사용하는 이유)


save()SimpleJdbcInsert jdbcInsert = new SimpleJdbcInsert(jdbcTemplate);
SimpleJdbcInsert는 jdbcTemplate를 넘겨서 만드는데,

jdbcInsert.withTableName("member").usingGeneratedKeyColumns("id");
위처럼 코드를 짜면 query를 짤 필요가 없음.
테이블명(member), pk(id), name만 있으면 insert문을 만들 수 있음.


findByName(), findAll()


JdbcTemplate을 사용하도록 스프링 설정 변경(조립)


jdbctemplate버전에 db까지 연동한 test 잘 실행됨

profile
평생 소원이 누룽지

0개의 댓글