카테고리 없음

스프링 16강 - MyBatis 개요

문자메일 2019. 11. 15. 03:27

https://www.youtube.com/watch?v=9b5P4YiyqOY&list=PL9mhQYIlKEhfYqQ-UkO2pe2suSx9IoFT2&index=17&t=0s

 

학습 목표

1. MyBatis의 개요와 특징에 대하여 이해할 수 있다.

2. MyBatis와 MyBatis-Spring의 주요 컴포넌트에 대하여 이해할 수 있다.

3. MyBatis-Spring을 사용한 예제에 대하여 이해할 수 있다.

 

 

1. MyBatis의 개요와 특징에 대하여 이해할 수 있다.

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

 

MyBatis의 특징

1. 쉬운 접근성과 코드의 간결함

- 가장 간단한 퍼시턴스 프레임워크

- XML 형태로 서술된 JDBC 코드라고 생각해도 될 만큼 JDBC의 모든 기능을 MyBatis가 대부분 제공한다.

- 복잡한 JDBC코드를 걷어내며 깔끔한 소스코드를 유지할 수 있다.

- 수동적인 파라미터 설정과 쿼리 결과에 대한 맵핑 구문을 제거할 수 있다.

 

2. SQL문과 프로그래밍 코드의 분리

- SQL에 변경이 있을 때마다 자바 코드를 수정하거나 컴파일 하지 않아도 된다.

- SQL 작성과 관리 또는 검토를 DBA와 같은 개발자가 아닌 다른 사람에게 맡길 수도 있다.

 

3. 다양한 프로그래밍 언어로 구현가능

- JAVA, C#, .NET, Ruby

 

 

2. MyBatis와 MyBatis-Spring의 주요 컴포넌트에 대하여 이해할 수 있다.

 

 

MyBatis3의 주요 컴포넌트의 역할

MyBatis 설정파일 (SqlMapConfig.xml) 데이터베이스의 접속 주소 정보나 Mapping 파일의 경로 등의 고정된 환경정보를 설정한다.
SqlSession FactoryBuilder MyBatis 설정 파일을 바탕으로 SqlSessionFactory를 생성한다
SqlSessionFactory SqlSession을 생성한다
SqlSession

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

- SqlSession 오브젝트는 Thread-Safe 하지 않으므로 thread마다 필요에 따라 생성한다.

mapping 파일 (user.xml) SQL문과 OR Mapping을 설정한다.

 

 

MyBatis-Spring은 서로 연동을 쉽게 할 수 있도록 제공하는 오픈소스이다.

MyBatis-Spring의 주요 컴포넌트 

특징 : SqlSession은 Thread-safe 하지 않지만, SqlSessionTemplate는 thread-safe 하다.

 

MyBatis-Spring의 주요 컴포넌트의 역할

MyBatis 설정파일 (SqlMapConfig.xml)

- VO 객체의 정보를 설정한다.

(DB 접속정보, MappingFile위치는 스프링 Bean에 설정한다.)

SqlSessionFactoryBean

- MyBatis 설정파일을 바탕으로 SqlSessionFactory를 생성한다.

- Spring Bean으로 등록해야 한다.

SqlSessionTemplate

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

- SqlSession 인터페이스를 구현하며, Thread-Safe 하다.

- Spring Bean으로 등록해야 한다.

Mapping 파일 (user.xml)

- SQL문과 OR Mapping을 설정한다.

Spring Bean 설정파일(bean.xml)

- SqlSessionFactoryBean을 Bean 등록할 때 DataSource 정보와 MyBatis Config 파일정보, Mapping 파일 정보를 함께 설정한다.

- SqlSessionTemplate을 Bean으로 등록한다.

 

 

MyBatis-Spring을 사용한 예제