본문 바로가기
반응형
Spring

MyBatis란(SQL Mapper)

by brightGarden02 2022. 12. 24.

MyBatis란?

- 자바에서 SQL Mapper를 지원해주는 프레임워크

- JDBC를 통해 데이터베이스에 엑세스하는 작업을 캠슐화한다.

- 일반 SQL 쿼리, 저장 프로시저, 고급 매핑을 지원한다.

- 프로그램에 있는 SQL 쿼리를 한 구성파일에 구성하여 프로그램 코드와 SQL을 분리할 수 있다.

- SQL을 직접 작성해서 쿼리 수행 결과를 객체와 매핑한다

- 쿼리문을 XML로 분리 가능하다

 

 

 

MyBatis: 장점:

- 자바의 관계형 데이터베이스 프로그래밍을 쉽게 할 수 있도록 도와준다.

- 모든 JDBC 코드, 매개 변수의 중복작업을 제거한다.

- 복잡한 쿼리 작성이 가능하다

- 데이터 캐싱 기능으로 성능이 향상된다

 

 

 

MyBatis 단점:

- 객체, 쿼리문을 모두 관리해야한다.

- CRUD 메소드를 직접 구현해야한다.

 

 

 

데이터 전달 과정에서

Presentaion Layer, Service Layer, Data Access  Layer가 있으며 

MyBatis는 Data Access Layer에서 사용하는 프레임워크이다.

 

 

각 계층에서의 호출을 보면 다음과 같다.

Controller에서 Service를 호출한다.

Service는 DAO에 있는 메소드를 호출한다.

DAO에서 MyBatis를 호출한다.

 

 

 

다음은 MyBatis의 주요 컴포넌트이다.

파란색 부분은 MyBatis에서 제공하는 클래스 및 설정 파일이다.

MyBatis Config File: XML 환경 설정 파일

 

MyBatis 설정파일(SqlMapConfig.xml): 데이터베이스의 접속 주소 정보나 Mapping 파일의 경로 등의 고정된 환경정보를 설정한다.

SqlSession Factory Builder: MyBatis 설정 파일을 바탕으로 SqlSessionFactory를 생성한다.

SqlSesionFactory: Session을 생성한다.

SqlSession: 핵심적인 역할을 하는 클래스로서 SQL 실행이나 트랜잭션 관리를 실행한다. SQlSession 오브젝트는 Thread-Safe하지 않으므로 thread마다 필요에 따라 생성한다.

mappping 파일(user.xml): SQL문과 OR Mapping을 설정한다.

 

 

보라색 부분은 개발자가 작성하는 부분이다.

Mapping File: SQL문 작성

 

 

 

 

 

참고:

https://www.youtube.com/watch?v=9b5P4YiyqOY 

댓글


반응형
반응형