###MyBatis란?
SQL Mapping Framework - Easy & Simple
자바코드로부터 SQL문을 분리해서 관리
매개변수 설정과 쿼리 결과를 읽어오는 코드를 제거
작성할 코드가 줄어서 생산성 향상 & 유지 보수 편리
쿼리란?
데이터베이스 등에서 원하는 정보를 검색하기 위해 요청하는 것을 말한다.
MyBatis를 이용하면 코드안에 SQL문과 Java가 섞여있는 것을 분리할 수 있다.
이렇게 XML안에 SQL문을 넣고 Java 코드는 훨씬 깔끔해진 것을 볼 수 있다.
###SqlSessionFactoryBean과 SqlSessionTemplate
SqlSessionFacotory - SqlSession을 생성해서 제공
SqlSession - SQL명령을 수행하는데 필요한 메서드 제공
SqlSessionFacotory이 있어야 SqlSession을 제공할 수 있다.
이 둘은 Mybatis모듈이 제공한다.
위 둘을 구현한 것이 아래와 같다.
SqlSessionFactoryBean - SqlSessionFacotory를 Spring에서 사용하기 위한 빈
SqlSessionTemplate - SQL명령을 수행하는데 필요한 메서드 제공. thread-safe
이 둘은 mybatisspring에서 제공한다.
thread-safe
멀티쓰레드가 가능하다. 여러 쓰레드가 동시에 접근해도 안전하다는 뜻이다.
Dao가 여러개 일수도 있는데
ex) Board Dao, UserDao
이 둘이 sqlSessionTemplate를 공유가능하다는 뜻이다.