Kotlin - MyBatis


코틀린 코드


MyBatis - SqlSession 관련 구성 요소

  • SqlSessionFactoryBuilder : Configuration의 정보를 읽어서 SqlSessionFactory를 생성한다. 최초 한 번만 사용하길 권장되며, 메서드 스코프로 사용되고 바로 해제되는게 가장 좋다.
  • SqlSessionFactory : 매 요청 또는 SQL 구문 별 SqlSession을 생성하도록 하기 위해 싱글턴으로 어플리케이션 스코프로 사용되는 것이 가장 좋다.
  • SqlSession : SQL의 실행과 트랜잭션 제어를 위한 API를 제공하는 핵심 객체로써, 각 쓰레드는 독립적인 SqlSession을 가져야 한다. 즉, SqlSession은 스레드 세이프하지 않기 때문에 공유되어서는 안된다.
  • Mapper Interface : Mapper InterfaceSQL 구문을 바인딩하기 위한 인터페이스다. 구현체는 SqlSessionthis 참조를 전달하여 생성해준다. 따라서 구현체가 SQL을 실행할 때 내부적으로는 SqlSession API를 활용한다.