[Spring] CRUD, service 구현

Spring Framework 사용 시 DB에 접근하는 insert, delete 등의 동작과 실제 사용을 위한 메소드-service는 분리 된다.


※CRUD 구현

DB 접근을 위한 SQL 구문의 구현을 위한 파일은 XML, 인터페이스 로 구분된다.

- 인터페이스 : 접근을 위한 메소드의 인터페이스 메소드 선언

- XML : 인터페이스 메소드의 실제 구현

- 패키지 명은 XXX.XXX.mapper 형식으로 설정함


※ 인터페이스 파일
- 인터페이스 파일














※VO(DTO)의 선언은 사전에 완료

- 인터페이스 파일과 xml 파일의 이름은 같게 설정해야 한다.

- 선언되는 메소드의 이름은 xml 파일의 id 값과 동일해야 한다.

- 간단한 sql 의 구문의 경우, 어노테이션(@select 등)을 사용하여 선언과 구현이 가능하다.


※XML 파일

- XML 파일, 태그 형식으로 작성됨











① 모든 sql의 구현 부는 <mapper> 태그 내에서 이루어지며, namespace 값은 인터페이스 파일의 이름과 같아야 한다.

② sql 구문의 기본 형은 태그로 이루어지며, id 값은 메소드의 이름과 동일해야 한다.

③ <selectKey> 태그는 이후에 실행될 sql 구문 수행 전에 수행되는 sql 구문이며, 해당 값은 KeyProperty 에서 지정한 변수 명에 저장되어 사용이 가능해진다.

※ mapper 파일의 경우 해당 파일이 있음을 root-context.xml 파일에서 명시할 필요가 있다.

<mybatis:scan base-package="com.zerock.mapper"/>

-bean 태그 내부에 위와 같이 기입


※service 구현

-mapper와 동일한 방법으로 패키지를 생성 
- 실제 sql 구문 메소드를 수행할 메소드는 별도로 작성된다.

- 선언에 해당되는 인터페이스 파일과 구현을 위한 클래스 파일로 구분된다.


※인터페이스 파일

-인터페이스 파일
- 단순히 메소드에 대한 선언을 수행


※구현 클래스 파일

-구현 클래스 파일

① service 구현 클래스는 @service 어노테이션을 사용하여 service 클래스 임을 명시하여야 한다.

② sql 메소드를 사용하기 위한 의존성 주입

③ 인터페이스 메소드의 오버라이드 하여 구현함


※ service 사용 시, servlet-context.xml 파일의 bean 태그 내부에 해당 태그의 추가가 필요함

<context:component-scan base-package="com.zerock.service"/>

댓글