MyBatis

CHM·2022년 6월 21일
0

Spring

목록 보기
19/26

MyBatis

  • MyBatis는 자바 오브젝트와 SQL문 사이의 자동 Mapping 기능을 지원하는 Object Mapper이다
  • ORM 기술은 아니다!
  • SQL을 별도의 파이로 분리해서 관리하게 해준다.
  • Hibernate나 JPA처럼 새로운 DB 프로그래밍 패러다임을 익혀야 하는 부담 없이, 개발자가 익숙한 SQL을 그대로 이용하면서 JDBC 코드 작성의 불편함도 제거해주고, 도메인 객체나 VO 객체를 중심으로 개발이 가능하다

MyBatis의 특징

  • 가장 간단한 퍼시스턴트 프레임워크
  • XML형태로 서술된 JDBC 코드라고 생각해도 될만큼 JDBC의 모든 기능을 대부분 제공
  • 복잡한 JDBC 코드를 걷어내며 깔끔한 소스코드 유지 가능
  • SQL문과 프로그래밍 코드의 분리
    • SQL에 변경이 있을 때마다 자바 코드 수정, 컴파일이 필요없음
    • SQL 작성과 관리 또는 검토를 DBA와 같은 개발자가 아닌 다른 사람에게 맡길 수 도 있음
  • 다양한 프로그래밍 언어로 구현 가능(Java, C#, .NET, Ruby)

MyBatis의 주요 컴포넌트 역할

MyBatis 설정파일

  • 데이터베이스 접속 주소 정보나 Mapping 파일의 경로 등 고정된 환경정보 생성
  • MyBatis-Spring 연동모듈을 사용하면 MyBatis 설정파일의 내용은 거의 사용하지 않는다.

SqlSession FactoryBuilder

  • MyBatis 설정파일을 바탕으로 SqlSessionFactory를 생성

SqlSessionFactory

  • SqlSession 생성

SqlSession

  • 핵심적인 역할을 하는 클래스로 SQL 실행이다 트랜잭션 관리를 실행
  • SqlSession 오브젝트는 Thread-Safe하지 않으므로 thread마다 필요에 따라 생성한다.

mapping 파일

  • SQL문과 OR Mapping을 설정

MyBatis 설정

MyBatis, MyBatis-Spring 의존성 추가

  • MavenRepository에 MyBatis, MyBatis-Spring 검색 후 Dependency 추가

MyBatis 메인설정파일 mybatis-config.xml 설정

sqlSessionFactory, sqlSession 설정

  • datasource.xml파일 내 sqlSessionFactory 설정
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<property name="datasource" ref="dataSource"/>
    <property name="configLocation" value="classpath:mybatis-config.xml"/>
    <property name="mapperLocations">
    	<list>
        	매퍼 작성(DAO와 매핑 => mappers 폴더 생성 수 mapper 파일 작성)
        	<value></value>
        </list>
    </property>
</bean>

<bean id="sqlSession" class="org.mybastis.spring.SqlSessionTemplate"/>
	<constructor-arg ref="sqlSessionFactory"/>
</bean>

Mapper 파일 설정

  • eclipes marketplace에서 mybatipes 검색 후 설치
  • mappers 폴더안에 MyBatis XML Mapper 파일(article-mapper.xml)

0개의 댓글