순수 JDBC로 리포지토리 구현하기
이 포스트는 김영한님의 ‘스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술’을 수강하고 작성하였습니다.
build.gradle
에 의존성 추가
build.gradle
파일을 열고 dependencies
항목 옆에 있는 ‘스타터 편집…’ 이라는 버튼을 클릭하면 아래와 같은 창이 나온다.
검색창에 ‘jdbc’를 입력하고, ‘JDBC API’와 ‘H2 Database’에 체크를 해서 확인 버튼을 클릭하면 자동으로 의존성 추가가 이루어진다.
의존성 추가를 한 후에는 build.gradle을 다시 로드해준다.
application.properties
에 datasource 정보 작성
이제 application.properties
파일을 열어서 아래와 같이 작성한다.
spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.driver=org.h2.Driver
spring.datasource.username=sa
spring.datasource.url
: 연결하고자 하는 데이터베이스의 jdbc 주소이다. 이는 데이터베이스 연결할 때 썼던jdbc:h2...
주소로 정의했다.spring.datasource.driver
: 사용할 데이터베이스 드라이버를 정의한다. 데이터베이스 엔진이 h2이기 때문에 h2 드라이버로 정의했다. 이걸 위해build.gradle
에서 ‘H2 Database’ 의존성을 추가한 것이다.
JDBCMemberRepository
클래스 추가
repository/JDBCMemberRepository.java
파일을 만들어 MemoryMemberRepository.java
에 정의된 것처럼 save
, find
등의 함수를 정의한다.
해당 내용은 길기도 하고, 요즘은 잘 안 쓰는 방식으로 정의한 거라 링크로 남겨두도록 하겠다.
SpringConfig
수정
원래 SpringConfig
에서 스프링 빈으로 MemberRepository
를 MemoryMemberRepository
로 지정했었는데, 이제 MemoryMemberRepository
대신 JDBCMemberRepository
로 갈아끼우도록 하겠다.
// SpringConfig
package hello.hellospring;
// import 생략
@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 JDBCMemberRepository(dataSource);
}
}
위의 코드를 보면 application.properties
에 정의한 데이터 소스의 내용을 가져올 수 있도록 DataSource
의존성을 주입했다.
또한 MemberRepository
로 JDBCMemberRepository
를 정의했다.
결과 확인
이제 스프링부트를 실행해서 localhost:8080/members
로 들어가보면 다음과 같은 화면이 뜬다.
내가 h2 데이터베이스에 저장한 값이 정상적으로 보이는 것을 확인할 수 있다.
댓글남기기