본문 바로가기
백수/java

MyBatis 란

728x90
반응형

MyBatis 란

SQL 기반 웹 애플리케이션을 개발할 때 가장 많이 사용되는 SQL 매퍼 프레임워크입니다.

SQL을 별도의 파일로 분리해서 관리하게 해 줍니다.

Hibernate 처럼 새로운 DB 프로그래밍 패러다임을 익혀야 하는 부담 없이 SQL을 그대로 이용하면서 JDBC코드 작성의 불편함도 제거해 주고 도메인 객체, VO 객체를 중싱으로 개발이 가능

특징

  • 싱글톤 패턴으로 스프링빈으로 등록하여 주입하여 쉽게 사용 가능
  • MyBatis Mapper Interface를 통해 DB에 접근
  • 객체 프로퍼티로 파라미터, 결과를 객체 등으로 자동 매핑
  • Spring 연동 모듈을 제공해 주기 때문에 Spring 설정이 간단
  • 트랜잭션을 관리해 주기 쉽게 설정이 가능

 

사용 목적

데이터베이스 쿼리 ↔ 프로그래밍 언어 코드를 분리하여 유지보수, 생산성을 높이는 것

 

장점

  1. 유연성
    • SQL 쿼리를 직접 작성할 수 있으므로 매우 유연하며 MyBatis는 동적 쿼리를 작성 가능
  2. 간결성
    • SQL 쿼리와 프로그래밍 언어 코드를 분리하기 때문에 코드가 간결해져 유지보수에 용이
  3. 성능
    • 캐시 기능을 제공하여 데이터베이스 연산 속도를 향상
  4. 다양한 데이터베이스 지원
    • 다양한 데이터베이스에 대한 지원 제공

 

주요 컴포넌트

이름 설명
MyBatis 설정 파일 (mybatis-config.xml) DB의 접속 정보, Mapping 파일의 경로, alias 등을 설정하는 XML 파일
SqlSessionFactoryBuilder MyBatis 설정파일을 읽고 SqlSessionFactory를 생성
SqlSessionFactory SqlSession을 생성
SqlSession 가장 핵심적인 역할을 SQL의 실행, 트랜잭션 관리를 수행 Thread-Safe 하지 않으므로 thread 마다 필요에 따라 생성
Mapping File(mapper.xml) SQL과 객체 매핑 설정을 하는 XML 파일
728x90
반응형