본문 바로가기

Data/MyBatis

마이바티스 간단하게 알아보기 - 1 (소개)

## Introduce

 

    - Database's SQL, Procedure, Advanced Mapping features to Java POJO
    - Use XML or Annotation for mapping

 

## DI Framework for MyBatis

 

    - MyBatis-Spring
    - MyBatis-Guice

 

## SqlSession

 

    - 스프링이나 쥬스와 같은 의존성 삽입 프레임워크와 함께 사용할때 SqlSessions은 DI프레임워크에 의해 생성되고 삽입된다.
    - 그래서 SqlSessionFactoryBuilder나 SqlSessionFactory가 필요하지 않을 것이기 때문에 SqlSession섹션으로 바로 넘어가도 무방하다.
    - 추가적인 정보는 MyBatis-Spring이나 MyBatis-Guice를 참고하길 바란다.



    - SqlSessionFactoryBuilder
      - 유지할 필요가 없음
      - 메서드 지역변수
    - SqlSessionFactory
      - 애플리케이션을 작동하는 동안 존재해야 하므로 삭제하거나 재생성하지 않는 것이 가장 좋음
      - 애플리케이션 스코프
      - 싱글턴 패턴, static 싱글턴 패턴, DI Framework(MyBatis-Spring, MyBatis-Guice)
    - SqlSession
      - 모든 쓰레드는 SqlSession 인스턴스가 필요함
      - SqlSession 인스턴스는 공유되지 않고, 쓰레드에 안전하지도 않음
      - 메서드 스코프
      - try (SqlSession session = sqlSessionFactory.openSession()) {
            // do work
        }
    - Mapper Instance
      - 맵핑된 구문을 바인딩할 때 사용함
      - SqlSession에서 mapper Interface Instance 생성
      - SqlSession과 동일한 라이프사이클 보유