SqlSession Factory Builder, SqlSession Factory, SqlSession 이 있다.
MyBatis Config File을 XML파일로 작성해두고 보라색 부분들만 개발자가 작성하면된다.
Application에서 SqlSession Factory Builder를 호출하고
SqlSession Factory Builder가 Config File을 읽고 Factory를 생성해준다.
개발자가 DB에 insert하거나 Read하는 메서드를 호출하면 SqlSession Factory가 SqlSession를 생성하고 개발자가 작성한 Application코드에 반환해준다.
SqlSession은 개발자가 작성한 SQL문을 호출해주는 기능을 해준다고 생각하면된다.
MyBatis 설정파일(SqlMapConfig.xml) : 데이터베이스의 접속 주소 정보나 Mapping 파일의 경로 등의 고정된 환경정보를 설정한다.
SqlSessionFactoryBuilder : MyBatis 설정 파일을 바탕으로 SqlSessionFactory를 생성한다.
SqlSessionFactory : SqlSession을 생성한다.
SqlSession : 핵심적인 역할을 하는 클래스로서 SQL 실행이다 트랙잭션 관리를 실행한다. SqlSession 오브젝트는 Thread-Safe 하지 않으므로 thread마다 필요에 따라 생성한다.
Mapping 파일(user.xml) : SQL문과 OR Mapping을 설정한다.
MyBatis 설정파일(SqlMapConfig.xml) : VO 객체의 정보를 설정한다.
SqlSessionFactory : MyBatis 설정파일을 바탕으로 SqlSessionFactory를 생성한다, Spring Bean으로 등록해야 한다.
SqlSessionTemplate : 핵심적인 역할을 하는 클래스로서 SQL 실행이나 트랜잭션 관리를 실행한다. SqlSession 인터페이스를 구현하며, Thread-safe 하다. Spring Bean으로 등록해야 한다.
Mapping 파일 (user.xml) : SQL문과 OR Mapping을 설정한다.
Spring Bean 설정 파일 (mybatisBeans.xml) : SqlSessionFactoryBean을 Bean 등록할 때 DataSource 정보와 MyBatis Config 파일정보, Mapping 파일의 정보를 함께 설정한다. SqlSessionTemplate을 Bean으로 등록한다.