[Database] 04. MyBatis

2024. 11. 17. 23:00·공부/Spring Boot

MyBatis 란?

객체 지향적으로 DB와 상호작용할 수 있는 JPA와 같은 ORM 은 아니지만,

SQL 자동 매핑, 동적 쿼리, 저장 프로시저 등을 제공하는 JDBC와 JPA 사이의 프레임워크입니다.

MyBatis

특징

1. SQL 중심 개발

개발자가 직접 SQL을 작성 후 XML이나 어노테이션을 통해 Java 객체와 매핑한다.

SQL을 명시적으로 작성하기 때문에, 복잡한 쿼리를 작성할 수 있다.

2. Java 객체 매핑

데이터베이스와 자바 객체 사이의 매핑을 자동으로 처리해준다.

3. 유연성

SQL의 자유도를 유지하면서, 객체 매핑과 데이터 엑세스 기능을 지원한다.

4. 다양한 기능 지원

동적 SQL, 캐싱, 트랜잭션 관리 등의 다양한 기능을 지원한다.

구성 요소

1. SqlSessionFactory

Mybatis의 핵심 객체로, 데이터베이스의 연결 세션을 생성하고 관리한다.

2. Mapper

SQL쿼리와 Java 메서드를 매핑하는 역할을 수행하며, XML 또는 어노테이션으로 구현한다.

3. Configuration

MyBatis의 설정 정보나 매퍼 경로 등의 기본적인 설정을 지정한다.

4. Session

데이터베이스와 상호작용하는 작업 단위로, 트랜잭션을 관리하며 쿼리 실행, 결과 반환 등의 역할을 한다.

장단점

장점

  • SQL을 직접 작성할 수 있어 복잡한 쿼리를 효율적으로 처리할 수 있다.
  • JDBC 처럼 수동으로 매핑하는게 아니라, 자동으로 매핑해주기 때문에 좀더 객체지향적으로 사용할 수 있다.
  • SQL과 비즈니스 로직을 분리하여 코드 관리가 용이하다.
  • 조건에 따라 쿼리를 동적으로 생성할 수 있다.

단점

  • SQL 양이 많아진다면 관리하기가 어렵다.
  • JPA에 비해서는 반복적으로 SQL을 작성해야하기 때문에 생산성이 낮다.
  • 객체와 관계의 불일치가 발생할 때 수동으로 해결해주어야 한다.
저작자표시 비영리 변경금지 (새창열림)

'공부 > Spring Boot' 카테고리의 다른 글

[Database] 03. QueryDSL  (1) 2024.11.15
[Database] 02. JPA  (0) 2024.11.14
[Database] 01. JDBC  (0) 2024.11.13
[Spring Batch] 01. Spring Batch 기본 개념  (0) 2024.11.13
[스프링 부트 공부 일지] 4. 웹 어플리케이션 서버 구축하기 (2)  (0) 2022.12.22
'공부/Spring Boot' 카테고리의 다른 글
  • [Database] 03. QueryDSL
  • [Database] 02. JPA
  • [Database] 01. JDBC
  • [Spring Batch] 01. Spring Batch 기본 개념
뚝딱뚝딱2
뚝딱뚝딱2
  • 뚝딱뚝딱2
    개발도상국
    뚝딱뚝딱2
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 공부
        • Java
        • Spring Boot
        • LORA
      • Web
        • 인스타 클론 코딩
        • GPT 응답 API 서버
        • Spring Boot 예외 처리
        • 코테 준비용 서비스 만들기
      • DevOps
        • 쿠버네티스
        • 서버 만들기
      • 코딩테스트
        • 알고리즘
      • 교육
        • 스파르타코딩클럽 - 내일배움단
        • 혼자 공부하는 컴퓨터 구조 운영체제
      • 잡다한것
  • 블로그 메뉴

    • 홈
  • 링크

    • GITHUB
  • 공지사항

  • 인기 글

  • 태그

    클론코딩
    MSA
    Java
    spring boot
    react
    리액트
    티스토리챌린지
    인스타그램
    스프링 부트
    chat GPT
    스프링부트
    백준
    예외
    Entity
    OpenAI API
    mapstruct
    REST API
    쿠버네티스
    오블완
    클러스터
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
뚝딱뚝딱2
[Database] 04. MyBatis
상단으로

티스토리툴바