아파치에서 만든 오픈소스이며
https://blog.mybatis.org/
데이터 베이스와 자바를 보다 쉽게 연결해줄수있는 ORM(Object Relational Mapping) 프레임워크이다.
즉 자바 "객체" 를 "관계형 DB" SQL문과 직접 "매핑(Mapping)" 시켜주는 기능을 제공하여서
SQL문을 XML로 따로 분리하여 기존에 사용하던 SQL 명령어를 재사용할수도있다.
그렇기에 한두줄의 명령어로 DB 연동이 가능하다.
JDBC 위 상위단에서 가동됨 일반적으로 우리가 했던거는
어플리케이션 단에서 직접 JDBC를 이용했지만 이제는 그러지않고
더 상위인 마이바티스를 이용하여서 하위 JDBC를 매핑해서 사용한다.
MyBatis 설정 파일(XML) : 데이터베이스 접속 정보 매핑 파일 경로 등 환경설정 (mybatis-config.xml)
- 어플리케이션에서 SQL Session Factory Builder를 호출함
- SQL Session Factory Builder 구성 파일에서 정보를 읽어온다.
- SQL Session Factory Builder는 Session Factory를 구성파일 정의에 따라 생성 (build inputStream, mybatis-config.xml 파일 연결)
- Session Factory가 SQLSession를 생성하여 개발자 코드로 어플리케이션에 반환된다.(OpenSession())
SQLSession은 매핑 파일을 읽어 실행(SQL문)하는 기능 및 트랜잭션 관리를 한다. (쓰레마다 생성됨)
- SQL FactoryBean & SQL Session Tmplate를 Spring Bean 설정파일에 등록해야됨
- 어플리케이션은 SQL Session Factory Builder를 사용하여 SQL Session Factory를 빌드하고 SqlSession을 가져옴
- SQL Session Factory Builder는 SQL Session Factory를 생성해줌 이건 Spring DI 컨테이너에 의해 저장됨
- MapperFactoryBean는 SQLSessionTmplate를 생성함 이는 멀티 쓰레드를 지원함 SQLSession을 구현하여 보다 편리하게 사용하도록 해주는것.
적용 과정