mybatis – MyBatis 3 | Introduction
ORM의 개념, JPA와 MyBatis 차이
- xml이나 어노테이션을 사용하여 저장 프로시저나 SQL문으로 객체들을 DB와 연결해주는 프레임워크
- Apache 라이선스 2.0으로 배포되는 자유 소프트웨어
- IBatis 3.0의 folk ⇒ IBatis 기반이므로 유사함
- JPA와 혼용 가능
⇒ MyBatis는 직접 테이블을 생성할 수 없어, JPA의 @Entity를 사용하거나 직접 SQL로 DB에 생성 해야함
특징
- Java(OOP)의 RDB 프로그래밍을 더 쉽게 도와줌
⇒ JDBC 코드를 없애고 깔끔한(?) 코드를 유지 (DTO, DAO, Commend - 코드 중복 제거)
- Java의 객체(Object)와 SQL을 자동으로 매핑 (JPA와 유사)
⇒ Java와 SQL 분리 가능
- xml 형태로 JDBC의 모든 기능을 제공
@Mapper
⇒ JPA의 Repository 역할(직접 DB와 연동되어 SQL을 처리)
- 2가지의 구현 방식 (xml 파일을 호출 or 코드에 @Mapper 추가)
⇒ xml 사용시 해당 파일에 SQL문 작성하여 사용
- Spring 컨테이너에 서비스 Bean으로 등록
- 해당 인터페이스에 등록된 SQL 어노테이션을 토대로 실제 SQL문을 실행시켜줌
- 3 이상 버전부터 mapper.xml 대신 inerface 클래스의 어노테이션을 통해 SQL 사용 가능
⇒ 하지만 Java와 SQL을 분리하려는 본래의 목적에서 벗어나는 것이기도 함