MyBatis
자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 사용할 수 있도록 도와주는 프레임워크
JDBC를 통해 데이터베이스에 엑세스하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로 시저 및 고급 매핑을
지원하며 모든 JDBC 코드 및 매개 변수의 중복작업을 제거 한다. 또한 프로그램 코드와 SQL 문을 분리할 수 있다.
MyBatis DB 접근 구조
MyBatis 구성요소
요소 |
설명 |
MyBatis Configuration File |
DB 접속 정보 및 Mapper 파일의 경로 등 환경정보를 설정하는 파일 |
SqlSessionFactoryBuilder |
SqlSessionFactory를 생성하는 Builder |
SqlSessionFactory |
SqlSession 을 생성하기 위한 구성요소 - MyBatis 구성파일을 읽어 SqlSessionFactoryBuilder가 SqlSessionFactory를 생성 * SqlSessionFactoryBean을 통해 MyBatis 구성파일이 없어도 생성할 수 있다. |
SqlSession |
SQL 실행 및 트랜잭션 제어 등 가장 중요한 역할을 한다. |
MyBatis 구성요소가 DB 에 접근하는 순서
(1) ~ (3) 순서는 응용 프로그램 시작 시 수행되는 프로세스입니다.
순서 |
작업 |
1 |
응용 프로그램이 SqlSessionFactory를 생성하기 위해 SqlSessionFactoryBuilder에게 빌드하도록 요청한다. |
2 |
SqlSessionFactoryBuilder는 SqlSessionFactory를 생성하기 위해 MyBatis 구성 파일을 읽는다. |
3 |
SqlSessionFactoryBuilder는 MyBatis 구성파일에 따라 SqlSessionFactory를 생성한다. |
(4) ~ (10) 은 클라이언트의 요청이 있을때 수행되는 프로세스입니다.
순서 |
작업 |
4 |
클라이언트가 응용 프로그램에 프로세스 요청 |
5 ~ 6 |
SqlSessionFactory에 의해 생성된 SqlSession을 응용프로그램에게 반환한다. |
7 ~ 9 |
SqlSession에서 매퍼 인터페이스 구현 개체를 가져온 후 매퍼 인터페이스의 메서드를 호출한다. |
10 |
SqlSession 은 매핑 파일에서 실행할 SQL을 가져와 SQL문을 실행한다. |
참고 페이지
https://khj93.tistory.com/entry/MyBatis-MyBatis%EB%9E%80-%EA%B0%9C%EB%85%90-%EB%B0%8F-%ED%95%B5%EC%8B%AC-%EC%A0%95%EB%A6%AC