본문 바로가기

Archived(Programming)/Spring #2(기초)

Spring Mybatis

# MyBatis의 개요

  • Mybatis는 자바 오브젝트와 SQL 문 사이의 자동 Mapping 기능을 지원하는 Object Mapper이다.
  • MyBatis는 SQL을 별도의 파일로 분리해서 관리하게 해주며, 객체-SQL 사이의 파라미터 mapping 작업을 자동으로 해주기 때문에 많은 인기를 얻고 있는 기술이다.
  • Mybatis는 Hibernate나 JPA(Java Persistence API) 처럼 새로운 DB 프로그래밍 패러다임을 익혀야하는 부담이 없이 개발자가 익숙한 SQL을 그대로 이용하면서 JDBC 코드 작성의 불편함도 제거해주고, 도메인 객체나 VO 객체를 중심으로 개발이 가능하다는 장점이 있다.

# Mybatis의 특징

1) 쉬운 접근성과 코드의 간결함

  • 가장 간단한 퍼시스턴스 프레임워크
  • XML 형태로 서술된 JDBC 코드처럼 JDBC의 모든 기능 제공
  • 복잡한 JDBC 코드를 걷어내어 깔끔한 소스코드 유지 가능
  • 수동적인 파라미터 설정과 쿼리 결과에 대한 맵핑 구문 제거 가능

2) SQL문과 프로그래밍 코드의 분리

  • SQL에 변경이 있을 때마다 자바 코드를 수정하거나 컴파일하지 않아도 됨
  • SQL 작성과 관리 또는 검토를 DBA와 같은 개발자가 아닌 다른 사람에게 맡길 수 있음(협업)

3) 다양한 프로그래밍 언어로 구현가능

  • Java, C#, .NET, Ruby 등

 

MyBatis와 Mybatis-Spring을 사용한 DB 액세스 Architecture
Mybatis3의 주요 컴포넌트 (노랗게 표시된 부분이 개발자가 직접 작성해야하는 부분)

 

Mybatis3의 주요 컴포넌트 역할
Mybatis-Spring의 주요 컴포넌트
Mybatis-Spring 주요 컴포넌트의 역할
Mybatis-Spring 주요 컴포넌트의 역할

# 실습 Mybatis 설정

mvnrepository 추가
mvnrepository 추가

pom.xml에 의존성 추가

 

mybatis-config.xml 파일 생성 - hello-web/src/main/resources

https://mybatis.org/mybatis-3/ko/getting-started.html

 

MyBatis – 마이바티스 3 | 시작하기

이제부터 다룰 스코프와 생명주기에 대해서 이해하는 것은 매우 중요하다. 스코프와 생명주기를 잘못 사용하는 것은 다양한 동시성 문제를 야기할 수 있다. 의존성 삽입 프레임워크는 쓰레드에 안전하도록 해준다. 트랜잭션 성질을 가지는 SqlSessions과 매퍼들 그리고 그것들을 직접 빈에 삽입하면 생명주기에 대해 기억하지 않아도 되게 해준다. DI프레임워크와 마이바티스를 사용하기 위해 좀더 많은 정보를 보기 위해서는 MyBatis-Spring이나 MyBatis

mybatis.org

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
</configuration>

datasource.xml 파일 수정

...
	<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>
				<value></value>
			</list>
		</property>
	</bean>
    
	<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg ref="sqlSessionFactory"/>
	</bean>

mappers 폴더 생성
mapper 파일을 편리하게 만들 수 있도록 mybatipse 플러그인 설치
others> Mapper 파일 손쉽게 생성가능

article-mapper.xml 파일 생성 - hello-web/src/main/resources/mappers 

'Archived(Programming) > Spring #2(기초)' 카테고리의 다른 글

Dynamic SQL  (0) 2020.03.17
Mapper XML 파일  (1) 2020.03.16
Context 분리와 전략  (0) 2020.03.13
Spring Data Access 기술과 DataSource  (0) 2020.03.13
JUnit4 & Spring Test  (0) 2020.03.13