Spring Framework 사용 시 DB에 접근하는 insert, delete 등의 동작과 실제 사용을 위한 메소드-service는 분리 된다.
※CRUD 구현
DB 접근을 위한 SQL 구문의 구현을 위한 파일은 XML, 인터페이스 로 구분된다.
- 인터페이스 : 접근을 위한 메소드의 인터페이스 메소드 선언
- XML : 인터페이스 메소드의 실제 구현
| - 패키지 명은 XXX.XXX.mapper 형식으로 설정함 |
※ 인터페이스 파일
| - 인터페이스 파일 |
※VO(DTO)의 선언은 사전에 완료
- 인터페이스 파일과 xml 파일의 이름은 같게 설정해야 한다.
- 선언되는 메소드의 이름은 xml 파일의 id 값과 동일해야 한다.
- 간단한 sql 의 구문의 경우, 어노테이션(@select 등)을 사용하여 선언과 구현이 가능하다.
※XML 파일
① 모든 sql의 구현 부는 <mapper> 태그 내에서 이루어지며, namespace 값은 인터페이스 파일의 이름과 같아야 한다.
② sql 구문의 기본 형은 태그로 이루어지며, id 값은 메소드의 이름과 동일해야 한다.
③ <selectKey> 태그는 이후에 실행될 sql 구문 수행 전에 수행되는 sql 구문이며, 해당 값은 KeyProperty 에서 지정한 변수 명에 저장되어 사용이 가능해진다.
※ mapper 파일의 경우 해당 파일이 있음을 root-context.xml 파일에서 명시할 필요가 있다.
<mybatis:scan base-package="com.zerock.mapper"/>
-bean 태그 내부에 위와 같이 기입
※service 구현
| -mapper와 동일한 방법으로 패키지를 생성 |
- 선언에 해당되는 인터페이스 파일과 구현을 위한 클래스 파일로 구분된다.
※인터페이스 파일
| -인터페이스 파일 |
※구현 클래스 파일
① service 구현 클래스는 @service 어노테이션을 사용하여 service 클래스 임을 명시하여야 한다.
② sql 메소드를 사용하기 위한 의존성 주입
③ 인터페이스 메소드의 오버라이드 하여 구현함
※ service 사용 시, servlet-context.xml 파일의 bean 태그 내부에 해당 태그의 추가가 필요함
<context:component-scan base-package="com.zerock.service"/>
댓글
댓글 쓰기