[MyBatis] MyBatis 란?

2024. 11. 8. 08:57·BackEnd/JAVA

 

MyBatis 란

 

  • MyBatis는 Java 애플리케이션에서 데이터 베이스와의 상호작용을 쉽게 하기 위한 ORM(Object Relational Mapping) 프레임워크이다.
  • MyBatis는 SQL을 기반으로 한 SQL 매퍼로, SQL 쿼리, 저장 프로시저 등을 XML이나 어노테이션으로 매핑하여 관리할 수 있다.
  • Java는 JDBC api를 제공해주지만, 이런 JDBC를 이용하면 1개 클래스에 반복된 코드가 존재, 한 파일에 java 언어와 sql 언어가 함께 있어서 재사용성이 떨어진다는 단점이 있는데, MyBatis는 이러한 단점들을 개선했으며, 개발자가 작성한 SQL 명령어와 Java 객체를 매핑해주는 기능을 제공하고, 기존에 사용하던 SQL 명령어를 재사용 할 수 있다.

 

MyBatis의 주요 특징

 

  • JDBC의 모든 기능을 MyBatis가 대부분 제공한다.
  • Java 코드로 DB 연동을 처리할 때에 소스 코드의 길이를 줄여준다.
  • SQL 명령어를 Java 코드에서 분리하여 XML 파일에 따로 관리할 수 있다.
  • 수동적인 파라미터 설정과 쿼리 결과에대한 맵핑 구문을 제거할 수 있다. 
  • MyBatis 에서는 SqlSession를 생성하기 위해 SqlSessionFactory를 사용한다. 세션을 한번 생성하면 매핑구문을 실행하거나 커밋 또는 롤백을 하기 위해 세션을 사용할수 있다. 

 

 

MyBatis를 사용하는 데이터 엑세스 계층 흐름도 

 

 

위 그림은 MyBatis를 사용하는 데이터 엑세스 계층의 흐름도를 설명한 다이어그램이다. 각 레이어가 어떻게 상호작용하는지 보여주며, 주로 Presentation Layer, Service Layer, Data Access Layer, 그리고 DB Layer 로 구성되어 있다.

 

 

각 Layer의 역할

 

  1. Presentation Layer : Controller 및 MultiAction Controller 가 위치한 부분으로 사용자의 요청을 처리하며, Controller는 이 요청을 Service Layer로 전달한다.
  2. Service Layer : Service 인터페이스와 ServiceImpl 로 구성되어 있고 Service는 비즈니스 로직을 수행하는 역할을 하며, ServiceImpl은 그 구체적인 구현체 이다. Controller로부터 받은 요청을 Data Access Layer로 전달하며, 필요한 데이터를 처리하고 다시 Controller로 반환한다.
  3. Data Access Layer : Dao와 DaoImpl이 포함된 계층으로, 데이터 베이스와의 실제 상호작용을 담당한다. Dao는 데이터 베이스에 대한 인터페이스를 정의하며, DaoImpl은 그 구체적인 구현체이다. ServiceImpl로부터 요청을 받아 데이터 베이스에 접근하며, 그 결과를 ServiceImpl로 다시 전달한다.
  4. DB Layer (MyBatis Framework) : 이 부분은 실제 데이터 베이스와 연결되는 계층으로 MyBatis의 주요 구성 요소인 SqlSession, SqlSessionFactory, mapper.xml, JDBC.properties 등이 이 계층에 포함된다. mapper.xml과 JDBC.properties 는 MyBatis가 데이터베이스와 연결하고 SQL 쿼리를 수행할 수 있도록 설정된 파일이다. SqlSessionFactory는 데이터베이스 연결 세션을 생성하며, SqlSession을 통해 실제 SQL 쿼리를 실행하여 데이터 베이스에 접근한다.

 

 

주요 데이터 흐름

 

  • 사용자가 요청을 Presentation Layer의 Controller에 전달하면, 이 요청은 Service Layer로 전달된다.
  • Service Layer는 비즈니스 로직을 처리한 후, Data Access Layer를 통해 데이터베이스와 상호작용을 요청한다.
  • Data Access Layer는 MyBatis를 사용해 데이터베이스에 접근하며, 그 결과를 다시 Serivce Layer로 반환한다.
  • Service Layer는 이 데이터를 Controller로 전달하여 사용자에게 응답한다.

이를 통해 MyBaits를 이용한 애플리케이션의 데이터 처리 흐름이 단계적으로 이루어지게 된다.

저작자표시 비영리 변경금지 (새창열림)

'BackEnd > JAVA' 카테고리의 다른 글

2-2 데이터 타입과 타입 변환  (4) 2024.10.06
2-1. 변수  (6) 2024.10.05
1. eclipse & jdk설치 및 환경 설정  (5) 2024.10.05
'BackEnd/JAVA' 카테고리의 다른 글
  • 2-2 데이터 타입과 타입 변환
  • 2-1. 변수
  • 1. eclipse & jdk설치 및 환경 설정
hee-coding
hee-coding
  • hee-coding
    J의 코딩 일기
    hee-coding
  • 전체
    오늘
    어제
    • 분류 전체보기 (26)
      • FrontEnd (3)
        • HTML,CSS,Java Script (0)
        • React (3)
      • BackEnd (11)
        • DataBase (0)
        • JAVA (4)
        • Servlet & JSP (0)
        • Spring (7)
      • Project (1)
      • Error (1)
      • Git (0)
      • Coding Test Practice (4)
      • 일상~ (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Coding
    오블완
    react
    티스토리챌린지
    frontend
    it
    코딩
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
hee-coding
[MyBatis] MyBatis 란?
상단으로

티스토리툴바