더북(TheBook)

대개 JdbcTemplate 기반의 리포지토리는 코드 5-3과 같이 구현한다. 이 클래스는 JdbcTemplate 객체 참조를 (자동 연결로) 주입받으며, 이 객체는 도서 데이터베이스를 조회(findByReader() 메서드 부분)하고 데이터베이스에 책을 저장(save() 메서드 부분)하는 데 사용한다.

그루비로 코드를 작성하므로 몇몇 그루비 이디엄을 구현에 사용할 수 있다. 예를 들어 findByReaders() 메서드에서 query() 메서드를 호출할 때 RowMapper 구현체 대신 그루비 클로저를 매개변수로 사용했다.1 또 그루비 클로저에서 새 Book 객체는 그루비의 객체 프로퍼티 설정 기능으로 생성한다.

데이터베이스 영속성을 고려하여 리포지토리가 질의할 Book 테이블을 생성하는 SQL이 담긴 schema.sql 파일도 작성해야 한다.

 

코드 5-4 Book 테이블 생성 SQL

create table Book (
    id identity,
    reader varchar(20) not null,
    isbn varchar(10) not null,
    title varchar(50) not null,
    author varchar(50) not null,
    description varchar(2000) not null
);

schema.sql을 어떻게 사용하는지는 나중에 설명하고, 우선은 이 파일을 클래스패스의 루트(프로젝트 루트 디렉터리)에 생성하여 질의할 Book 테이블을 만들게 한다는 점만 알아 두자.

 

1 자바에서는 자바 8의 람다와 메서드 참조를 사용하여 그루비 클로저와 비슷하게 구현할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.