Helmi

구) 스프링 + MyBatis 소개 본문

Spring

구) 스프링 + MyBatis 소개

Helmi 2023. 4. 6. 18:50

MyBatis는 JDBC에서 개발자가 직접 처리하는 PreparedStatement의 '?'에 대한 설정이나 ResultSet 이용한 처리 이뤄짐.

→ 개발의 생산성이 좋아짐.

 

어노테이션 지원, 인터페이스와 어노테이션 통해 SQL문 설정하고 처리하는 형태.

 

MyBais 이용 시, SQL문 사용하는 방식 3가지

1. XML만 이용해 SQL문 설정, DAO에서는 XML을 찾아 실행하는 코드 작성하는 방식 (국내 대부분 프로젝트)

장점 : SQL문은 별도의 XML로 작성 - SQL문의 수정이나 유지보수에 적합

단점 : 개발 시 코드의 양 ↑,  복잡성 ↑

 

2. 어노테이션과 인터페이스만 이용해 SQL문 설정

장점 : 별도 DAO 없이 개발 가능 - 생산성 크게 증가

단점 : SQL문 어노테이션으로 작성 - 매번 수정 일어나는 경우 다시 컴파일

 

3. 인터페이스와 XML로 작성된 SQL문 활용 

장점 : 간단한 SQL문은 어노테이션으로, 복잡한 SQL문은 XML로 처리 - 상황 따라 유연하게 처리

단점 : 개발자 따라 개발 방식 차이 있을 수 있음 - 유지 보수 중요한 프로젝트의 경우 부적합

 

국내 대부분 프로젝트는 1번 선호 (XML만 이용해 SQL문 작성 후 별도 DAO 만드는 방식) 

SQL문 온전히 분리해 처리하므로 향후 SQL문 변경 일어날 때 , 대체 수월

 

MyBatis를 XML을 사용해 작성하는 경우 코딩 순서

1. 테이블 생성 및 개발 준비

2. 테이블 생성 및 기타 데이터베이스 관련 설정

3. 도메인 객체의 설계 및 클래스 작성

4. DAO 인터페이스 작성

5. 실행해야 하는 기능을 인터페이스로 정의

6. XML Mapper의 생성, SQL문 작성

7. XML 작성 및 SQL작성

8. MyBatis에서 작성된 XML Mapper를 인식하도록 설정

9. DAO 구현

10. DAO 인터페이스를 구현한 클래스 작성

11. 스프링상에 DAO 등록 및 테스트