시작은 언제라도

MyBatis Framework 본문

Web programming/Spring

MyBatis Framework

row_a_boat 2021. 6. 19. 17:58

1. What is MyBatis?

MyBatis는 자바 오브젝트아 sql문 사이의 자동 Mapping기능을 지원하는 ORM 프레임워크이다.

(ORM : object relational mapping) 

객체지향 언어인 자바의 관계형 데이터 베이스 프로그래밍을 좀더 쉽게 할수 있게 도와주는 개발 프레임워크이다.

MyBatis는 새로운 DB프로그래밍 패러다임을 익혀야 하는 부담이 없어, JDBC 코드 작성의 불편함을 제거해주고, 도멩인 객체나 VO 객체를 중심으로 개발이 가능하다는 장점이 있다.

자바는 jdbc api 를 제공해주지만, 이런 JDBC를 이용하면 1개 클래스에 반복된 코드가 존재, 한 파일에 java언어와 sql언어가 있어서 재사용성 등이 안좋아지는 단점이 있다.

 

Mybatis는 jdbc의 이러한 단점들을 개선했으며, 개발자가 작성한 SQL 명령어와 자바 객체를 매핑해주는 기능을 제공하며, 기존에 사용하던 SQL 명령어를 재사용한다.

 

----------------------------------------------------

2. features of MyBatis Framework

 

영속성 계층 프레임 워크 (persistence layer framework) 

   JDBC framework

   자바 어플리케이션과 데이터베이스 연동시 반복적인 작업 (Connection, PreparedStatement, ResultSet, close)

   을 프레임워크에서 지원하여 생산성이 향상

   SQL을 mapper.xml에 정의하고 어플리케이션에서 사용

 

3. Ibatis & MyBatis

-Ibatis -- apache project

최소 JDK 버젼 1.4

패키지 구조 : com.ibatis.*

SqlMap.xml에서 변경사항 : parameterMap

namespace properties : 선택적

 

-MyBatis -- google

최소 JDK 버젼 1.5

패키지 구조 : org.apache.ibatis.*

SqlMap.xml에서 변경사항 : parameterType

namespace properties : 필수적


MyBatis Architecture

 


4. MyBatis 주요 컴포넌트

SqlSession Factory Builder, SqlSession Factory, SqlSession

MyBatis Config File을 XML파일로 작성해두면 개발자가 실제로 작성하는 부분은 굉장히 줄어들게 된다(Application module의 Mapper)

 

Application에서 SqlSession Factory Builder를 호출하고

SqlSession Factory Builder 가 Config File을 읽고 Factory를 생성해준다. 개발자가 DB에 insert하거나 read하는 메서드 호출시, SqlSession  Factory가 SqlSession을 생성, 개발자가 작성한 Application 코드에 반환해준다.

SqlSession은 개발자가 작성한 SQL문을 호출해주는 기능을 해준다

 

-SqlMapConfig.xml (MyBatis 설정파일) : 데이터베이스의 접속 주소나 Mapping 파일의 경로 등의 고정된 환경정보를 저장, 설정한다. VO 객체의  정보를 설정한다.

-SqlSessionFactoryBuilder : 위 설정 파일을 바탕으로 SqlSession factory를 생성한다. 

-SqlSessonFactory : SqlSession을 생산한다. Spring bean으로 등록해야한다.

-SqlSessionTemplate: 핵심적인 역할을 수행하는 클래스로서 , sql 실행이나 트랜잭션 관리를 실핸한다.

Sql interface를 구현하며, Thread-safe하다. Spring bean으로 등록해야한다.

-SqlSession : 핵심적인 역할을 하는 클래스로서 SQL 실행이다 트랙잭션 관리를 실행한다. SqlSession 오브젝트는 Thread-Safe 하지 않으므로 thread마다 필요에 따라 생성한다.

-Mapping 파일 : sql문과 mapping을 설정한다.

 

'Web programming > Spring' 카테고리의 다른 글

Tiles framework detail  (0) 2021.06.22
Spring + Tiles Framework 연동  (0) 2021.06.22
spring framework 용어 정리  (0) 2021.06.07
Spring Annotation  (0) 2021.06.01
Settings  (0) 2021.06.01