Spring

Spring_Chapter06_스프링+MyBatis

강용민 2022. 4. 29. 12:47

MyBatis개요

MyBatis는 ORM(Object Relational Mapping)기술중 하나로 SQL과 자바 객체를 매핑하는 사상에서 개발된 데이터베이스 접근용 프레임워크이다.

 

ORM이란?

더보기

ORM은 Object Relational Mapping의 약자로 Object는 객체지향 언어의 객체를, Relational은 관계형 데이터베이스의 데이터를, Mapping은 객체지향 언어의 객체와 관계형 데이터를 서로 변환 해준다는 의미를 갖고있다.

즉, ORM이란 관계형 데이터베이스에서 조회한 데이터를 Java 객체로 변환하여 리턴해 주고, Java 객체를 관계형 데이터베이스에 저장해 주는 라이브러리 혹은 기술을 뜻한다.

MyBatis의 장점은 다음과 같다.

  • SQL의 체계적인 관리(설정 파일, 애노테이션)
    • 자바 Mapper 인터페이스를 통해 SQL 설정 파일과 연동
    • 비즈니스 로직에서 Mapper 인터페이스를 통해 SQL문 실행
  • 자바 객체와 SQL 입출력 값의 바인딩

 

MyBatis 컴포넌트 및 사용법

MyBatis를 Spring에서 사용하기 위해서는 spring-jdbc, MyBatis의 라이브러리와 스프링 프레임워크 연동을 위한 Mybatis-Spring 라이브러리가 필요하다.

그럼 각각 라이브러리의 주요 컴포넌트들을 알아보자.

MyBatis주요 컴포넌트
MyBatis 설정 파일 MyBatis의 설정들을 정의하는 파일이다.
SqlSessionFactoryBuilder MyBatis 설정 파일을 바탕으로 sqlSessionFactory를 생성한다
SqlSessionFactory sqlSession 생성을 위한 컴포넌트이다.
SqlSession SQL 발행과 트랜잭션을 관리한다.
Mapper인터페이스 매핑 파일과 SQL에 대응하는 자바 인터페이스
매핑 파일 SQL과 OR매핑을 XML에 파일 기술
myBatis-Spring
org.mybatis.spring.sqlSessionTemplate sqlSession 인터페이스를 구현한다.

 

sqlSession 의존관계

sqlSession 객체를 DAO 객체에 의존관계 주입으로 사용한다.

DAO 역할을 Mapper 객체를 통해 기능을 제공하는데,
myBatis는 DAO의 구현을 자동으로 생성해주는 Mapper라는 기능을 제공하며, 개발자는 Mapper 인터페이스를 준비해서 Mapper 객체를 생성하도록 빈을 정의해야한다.

그렇게 해서 myBatis-Spring관점에서 봤을 때, 아래 그림과 같다.

 

 

 

[참조]

https://devlog-wjdrbs96.tistory.com/200

'Spring' 카테고리의 다른 글

Spring_Chapter08_Transaction  (0) 2022.05.12
Spring_Chapter07_A.O.P  (0) 2022.05.02
Spring프레임워크_Chapter05_스프링 MVC  (0) 2022.04.08
Spring_chapter04_스프링 JDBC  (0) 2022.03.28
Spring프레임워크_chapter03_Dependency Injection  (0) 2022.03.17