MyBatis
2020. 3. 26. 19:13ㆍJava/일반
반응형
MyBatis란
MyBatis의 개념
MyBatis는 Java 오브젝트와 SQL문 사이의 매핑 기능을 지원해 Java의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있도록 도와주는 개발 프레임워크입니다. JDBC를 통해 데이터베이스에 액세스하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로시저 및 고급 매핑을 지원하며 모든 JDBC 코드 및 매개 변수의 중복 작업을 제거합니다.
MyBatis의 특징
- SQL 쿼리들을 한 파일에 구성하여 프로그램 코드와 SQL을 분리할 수 있음
- 복잡한 쿼리나 다이나믹한 쿼리에 강함
- 데이터 조회 결과를 사용자 정의 DTO, MAP 등으로 맵핑하여 사용 가능
- 복잡한 JDBC 코드를 걷어내어 깔끔한 코드를 유지할 수 있음
- 접근하기 쉽고 간단한 퍼시턴스 프레임워크
MyBatis의 구조
구성 요소/ 구성 파일 | 설명 |
MyBatis Configuration file | - MyBatis의 작업 설정을 설명하는 XML파일 - 데이터베이스의 연결 대상, 매핑 파일의 경로 등의 세부 사항을 설명하는 파일 |
SqlSessionFactoryBuilder | - MyBatis 구성 파일을 읽고 생성하는 SqlSessionFactory 구성 요소 |
SqlSessionFactory | - SqlSession을 생성하는 구성 요소 |
SqlSession | - SQL 실행 및 트랜잭션 제어를 위한 API를 제공하는 구성 요소 |
Mapper Interface | - 매핑 파일에 정의된 SQL을 호출하는 인터페이스 - MyBatis가 구현 클래스를 자동으로 생성하므로 개발자는 인터페이스만 생성 |
Mapping File | - SQL 및 O/R 매핑 설정을 설명하는 XML 파일 |
MyBatis가 DB에 Access하는 순서
- Application이 SqlSessionFactoryBuilder를 위해 SqlSessionFactory를 빌드하도록 요청
- SqlSessionFactoryBuilder는 SqlSessionFactory를 생성하기 위해 MyBatis 구성 파일을 로드
- SqlSessionFactoryBuilder는 MyBatis 구성 파일의 정의에 따라 SqlSessionFactory를 생성
- 클라이언트가 요청을 보냄
- Application은 빌드된 SqlSessionFactory에서 SqlSession을 가져옴
- SqlSessionFactory는 SqlSession을 생성하고 이를 Application에 반환
- Application이 SqlSession에서 매퍼 인터페이스의 구현 개체를 가져옴
- 응용 프로그램이 Mapper Interface를 호출
- Mapper Interface의 구현 개체가 SqlSession 메서드를 호출하고 SQL 실행을 요청
- SqlSession은 매핑 파일에서 실행할 SQL을 가져와 SQL을 실행
반응형
'Java > 일반' 카테고리의 다른 글
SLF4J (0) | 2020.04.03 |
---|---|
Jar과 War의 차이 (0) | 2020.04.03 |
Java Logging (0) | 2020.04.03 |
Wrapper Class (0) | 2020.03.28 |
DBCP (0) | 2020.03.26 |