SqlSession이란?

  • 데이터베이스의 작업들을 직접 실행하는 JAVA 객체이다.
  • SQL(CRUD) 실행, 트랜잭션 관리, SQL 결과를 자바로 매핑하는 작업 등을 진행한다.

SqlSessionFactory

  • SqlSession 객체를 생성하는 팩토리 클래스
  • MyBatis 설정 파일과 데이터 소스를 기반으로 구성된다.

사용 흐름

(1) ~ (4) 프로그램 시작 시 수행되는 프로세스

  1. 프로그램이 시작할 떄 SqlSessionFactoryBuilder가 생성된다.
  2. 생성된 객체가 MyBatis 설정을 읽어와서 객체를 만들 준비를 한다.
  3. 읽어온 정보들을 바탕으로 SqlSessionFactory 객체를 생성한다.

(5) ~ (10) 클라이언트 요청시 수행되는 프로세스

  1. 프로그램에 클라이언트가 요청을 보낸다.
  2. 프로그램은 SqlSessionFactory에 객체 생성을 요청한다.
  3. Factory 객체는 SqlSession을 생성한다.
  4. 프로그램은 생성된 SqlSession 객체에서 MapperInterface의 구현체를 가져온다.
  5. 열심히 쓰고 있었는데 뭔가 많이 꼬여서 나중에 다시 이어쓰겠다…
  6. 마이바티스 겁나 복잡하다
  7. 아래 참고 자료 많은거 봐라 개힘들다

참고자료 :

MyBatis - SqlSession - y♡ding

MyBatis란? 개념 및 구조 - yunSeok

SqlSessionFactory와 SqlSession 은 무엇일까? - 꾸준히

MyBatis&SqlSessionTemplate- Dami

https://mybatis.org/spring/ko/sqlsession.html

https://linked2ev.github.io/mybatis/2019/09/08/MyBatis-4-DAO%EC%99%80-SqlSessionTemplate,-SqlSessionDaoSupport/