MyBatis

mingggkeee·2022년 4월 21일
0

MyBatis

  • MyBatis는 Java Object와 SQL문 사이의 자동 Mapping기능을 지원하는 ORM Framework
  • MyBatis는 SQL을 별도의 파일로 분리해서 관리한다.
  • Object와 SQL사이의 파라미터 매핑작업을 자동으로 해준다.
  • Hibernate나 JPA처럼 새로운 DB프로그래밍 패러다임을 익혀야하는 부담이 없이, SQL을 그대로 이용하면서 JDBC 코드 작성의 불편함을 제거해주고, 도메인 객체나 VO객체를 중심으로 개발이 가능

MyBatis 특징

  • 쉬운 접근성과 코드의 간결함
    • 가장 간단한 persistence framework
    • XML형태로 서술된 JDBC 코드라 생각해도 될 만큼 JDBC의 모든 기능을 MyBatis가 대부분 제공
    • 복잡한 JDBC 코드를 걷어내며 깔끔한 소스코드를 유지
    • 수동적인 parameter 설정과 Query 결과에 대한 mapping 구문을 제거
  • SQL문과 프로그래밍 코드의 분리
    • SQL에 변경이 있을 때마다 Java코드를 수정하거나 컴파일 하지 않아도 된다.
    • SQL작성과 관리 또는 검토를 DBA와 같은 개발자가 아닌 다른 사람에게 맡길 수 있다.
  • 다양한 프로그래밍 언어로 구현이 가능
    • Java, C#, NET, Ruby

MyBatis와 MyBatis-Spring의 주요 컴포넌트

MyBatis3의 주요 컴포넌트의 역할

  • MyBatis 설정파일(Config file) : DB의 접속 주소 정보나 객체의 alias, Mapping 파일의 경로 등의 고정된 환경 정보를 설정
  • SqlSessionFactoryBuilder : MyBatis 설정 파일을 바탕으로 SqlSessionFactory생성
  • SqlSessionFactory : SqlSession 생성
  • SqlSession : 핵심적인 역할을 하는 Class로 SQL 실행이나 Transaction 관리 실행. SqlSession 객체는 Thread-Safe 하지않아 스레드마다 필요에 따라 생성됨
  • Mapping 파일(xml file) : SQL문과 ORMapping을 설정

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

  • MyBatis 설정파일(Config file) : DB의 접속 주소 정보나 객체의 alias, Mapping 파일의 경로 등의 고정된 환경 정보를 설정
  • SqlSessionFactoryBean : MyBatis 설정 파일을 바탕으로 SqlSessionFactory생성, Spring Bean으로 등록해야함
  • SqlSessionTemplate : 핵심적인 역할을 하는 클래스로서 SQL 실행이나 Transaction관리 실행. SqlSession interface를 구현하며, Thread-Safe하다. Spring bean으로 등록 필요
  • Mapping 파일(xml file) : SQL문과 ORMapping을 설정
  • Spring bean 설정파일(xml file) : SqlSessionFactoryBean을 Bean에 등록할 때 DataSource 정보와 MyBatisConfig 파일 정보, Mapping 파일의 정보를 함께 설정함. sqlSessionTemplate을 Bean으로 등록

MyBatis와 Spring연동하기

  1. pom.xml에 라이브러리 추가
  2. root-context.xml에 Connection을 bean으로 관리한다.(메모리 낭비 방지)
  3. 트랜잭션 관리자 설정.
  4. SqlSessionFactoryBean 설정.
  5. Mapper 빈 등록
  6. MyBatis Configuration 파일 설정
  7. 데이터 접근할 객체 구현하기
profile
만반잘부

0개의 댓글