MyBatis?
- MyBatis란 자바 오브젝트와 SQL 사이의 자동 매핑 기능을 지원하는 ORM(Object Relational Mapping) 프레임워크
- SQL, 동적 쿼리, 저장 프로시저 그리고 고급 매핑을 지원하는 SQL Mapper
- MyBatis는 JDBC를 통하 RDBMS에 액세스하는 작업을 캡슐화하고 기존 JDBC의 중복작업을 간소화
- XML 파일의 형태인 Mapper를 통해 프로그램 코드로부터 SQL 쿼리가 분리되는 환경을 제공하고 Java 객체와 매핑하는 작업을 도와줌
MyBatis 특징
- 기존 JDBC보다 사용하기 편리하다
- JDBC의 모든 기능을 MyBatis가 대부분 제공
- 수동적인 파라미터 설정과 쿼리 결과에 대한 맵핑 구문을 제거할 수 있다
- 기존 JDBC를 이용하여 프로그래밍을 하는 방식은 프로그램 소스안에 SQL문을 작성하는 방식으로 생산성이 좋지 않다
- JDBC는 세부적인 작업이 가능하게 작업별로 각각의 메소드를 호출하게된다. 이러한 사항들은 다수의 메소드를 호출하고 관련된 객체를 해제해야하는 단점이 있다
- SQL문과 프로그래밍 코드의 분리로 이식성이 좋다
- SQL 변경이 있을 때마다 자바 코드를 수정하거나 컴파일 하지 않아도 된다
- SQL을 별도의 파일로 분리해서 관리하게 해준다
- 간단함
- 객체 프로퍼티로 파라미터와 결과를 객체(DTO, Map 등)로 자동 매핑을 지원한다
- Spring 연동 모듈을 제공해주기 때문에 Spring 설정이 간단하다
- 다양한 프로그래밍 언어로 구현가능
- Java, C#, .NET, Ruby
MyBatis 구현 순서
- DB 테이블 생성 및 설정
- 도메인 객체 (DTO) 설계 및 클래스 작성
- DAO 인터페이스 / 실행 기능 인터페이스 정의
- XML Mapper 생성 및 SQL문 작성
- MyBatis에 작성한 XML Mapper 인식 설정 (Spring과 연동)
- DAO 인터페이스 구현한 클래스 작성
- 스프링에 DAO 등록