스프링 JdbcTemplate
스프링에 DB를 연결하는 것을 JdbcTemplate로 구현해보도록하겠습니다!
리포지토리를 새로만들어줘야겠죠?
JdbcTemplateMemberRepository라는 java class를 생성해줍니다. 그리고 JdbcTemplate 객체를 생성한뒤에 생성자를 이용해서 dataSource를 부여받도록 작성해줍니다. 이때 @Autowired는 생성자가 클래스에 하나라면 생략가능합니다.
public class JdbcTemplateMemberRepository implements MemberRepository {
private final JdbcTemplate jdbcTemplate;
//@AutoWire 생성자 하나면 생략가능
public JdbcTemplateMemberRepository(DataSource dataSource){
jdbcTemplate = new JdbcTemplate(dataSource);
}
....
....
}
@Configuration
public class SpringConfig {
private final DataSource dataSource;
public SpringConfig(DataSource dataSource) {
this.dataSource = dataSource;
}
@Bean
public MemberService memberService() {
return new MemberService(memberRepository());
}
@Bean
public MemberRepository memberRepository() {
// return new MemoryMemberRepository();
return new JdbcTemplateMemberRepository(dataSource);
}
}
바로 스프링 부트가 데이터베이스 커넥션 정보를 바탕으로 DataSource를 생성하고 스프링 빈으로 만들어두기 때문에 DI를 받을 수 있습니다.
이제 jdbcTemplate레포지토리에 각 함수를 작성해주면 되겠습니다. 이는 생략하도록 하겠습니다!