[Spring] 스프링 MVC 패턴 mapper작업 (with. MyBatis)
현재 스터디겸 진행하고 있는 회원/매출 관리 스프링 프로젝트의 경우 회원과 매출 테이블을 생성해주고
더미데이터는 우선 소량으로 작업하여 넣어주었다.
sql developer 를 사용하여 생성해준 샘플 테이블의 명세에 맞추어 STS에 VO클래스를 작업한다.
테이블 컬럼 구조에 맞게 데이터 타입을 지정해주고 컬럼명과 동일하게 맞춘 필드명으로 자바빈즈에 맞춘 클래스를 생성해준다. 기본생성자나 getter setter 는 현재 lombok 을 사용하여 @Data 어노테이션으로 대체할 예정이므로 생략한다.
위의 과정 전에 먼저 rootcontext.xml에 jdbc 연결에 사용할 hikariConfig클래스를 빈등록 해주고
property 속성 태그로 db연결 데이터를 지정해준다.
그 밖에도 설정태그 안에는 sql sessionFactory와 myBatis 연동에 필요한 dataSource의 빈등록이 필요하다.
쿼리작업은 정말 간단한 sql문만 어노테이션으로 처리하고 mapper.xml을 주로 이용할 예정이라 설정파일 내에 꼭 mybatis-spring 스캔 태그로 해당 매퍼 패키지를 지정한다.
db연동에 필요한 작업이 끝나면 필히 junit으로 연결테스트를 진행해야 이후 실행시에 문제가 없을 것이므로 꼭 db관련해서는 사전 테스트를 진행한다.
db테스트 목적으로 간단하게 mapper 인터페이스 안에서 어노테이션을 사용하여 더미데이터 조회를 해보고 연결에 문제가 있을시 바로 수정해주어야 한다.
테스트 클래스에서는 매퍼 인터페이스를 주입받아 동작할 예정이므로 꼭 wiring 작업을 해주어야 한다.
**실제 쿼리를 작성할 xml 파일에도 name 스페이스에 오류가 없도록 대소문자에 유의하여 인터페이스를 지정한다.
result type의 경우 list형태로 조회할거라 result map을 참조하는 방법으로 진행했다.
(중간중간 수정사항이 있을때는 꼭 단위테스트를 진행해서 작업하는 습관을 갖자)
mybatis 주요태그
- select :: insert 된 데이터 조회목적 태그/ resultType 지정시 유의
- delete :: 특정 데이터 삭제시 삭제할 항목의 pk를 #{}속성에 작성하여 원하는 데이터 삭제처리
- update :: 회원의 개인정보나 매출 관련한 수정사항에 대해 이름그대로 update 처리 / 수정시간은 sysdate 컬럼으로 기록하여 확인
**모든 쿼리문은 꼭 매퍼테스트를 진행하여 쿼리에 오류가 없는지 확인 후 컨트롤러 작업을 진행