Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

290570

MyBatis 본문

java_spring (2024.05 ~ 2024.10)

MyBatis

qordpsem 2024. 8. 6. 11:36

#MyBatis

JDBC 를 통해 RDBMS에 액세스 하는 작업을 캡슐화하고, 기존 JDBC 의 중복 작업을 간소화 해줌

XML 파일 형태인 mapper를 통해 프로그램 코드로부터 sql 쿼리가 분리되는 환경 제공 및 java 객체와 매핑하는 작업 도와줌

 

(XML mapper : sql 쿼리를 xml 파일 안에 따로 정의 가능, 프로그램 코드와 sql 쿼리문 분리되어 독립적 관리 가능)

 

 

 

#기존 JDBC

Repository  >  JDBC API        :  DB연결 

 

#MyBatis 사용

Repository  >  MyBatis  >  JDBC API         :  DB연결

 

 

 

#MyBatis 컴포넌트

MyBatis Config File ( MyBatis 설정파일)   :   dbConfig.xml (DB 정보 및 Mapping 파일 경로 등 설정)

SqlSessionFactoryBuilder   :   MyBatis 설정파일 읽고 SqlSessionFactory 생성

SqlSessionFactory   :   SqlSession 생성

SqlSession   :   Sql 실행, 트랜잭션 관리

Mapping File   :   mapper.xml (Sql, 객체 매핑설정)

 

(SqlSession은 Thread-safe 하지 않음  :  여러 thread가 동시에 SqlSession 사용하면 안됨 / 각 thread 마다 독립적으로 사용해야 함)

 

 

 

#어플리케이션 실행 시

1. 어플리케이션이 SqlSessionFactoryBuilder에게 SqlSessionFactory 빌드 요청

2. SqlSessionFactoryBuilder는 SqlSessionFactory를 생성하기 위해 MyBatis Config File 읽음

3. SqlSessionFactoryBuilder는 MyBatis Config File의 정의에 따라 SqlSessionFactory 생성

 

#클라이언트 요청 시

4. 클라이언트의 어플리케이션에 대한 요청

5. 어플리케이션은 SqlSessionFactoryBuilder를 사용하여 빌드된 SqlSessionFactory 에서 SqlSession 가져옴

6. SqlSessionFactory는 SqlSession 생성 및 어플리케이션에 반환

7. 어플리케이션이 SqlSession에서 Mapper Interface 구현 개체 가져옴

8. 어플리케이션이 Mapper Interface의 메소드 호출

9. Mapper Interface의 구현 개체가 SqlSession 메소드 호출 및 sql 실행 요청

10. SqlSession은 Mapping File에서 실행할 sql 찾아서 실행

'java_spring (2024.05 ~ 2024.10)' 카테고리의 다른 글

Mail 보내기  (0) 2024.08.12
session 자동/수동 커밋  (0) 2024.08.07
24.07.31  (0) 2024.08.05
비밀번호 보기/숨기기  (0) 2024.07.30
trouble shooting  (0) 2024.07.29