MyBatis 3

roon2020·2021년 2월 20일
0

spring

목록 보기
3/16
post-thumbnail

mybatis.org의 mybatis 소개 및 사용법
간단히 mybatis에 대해 정리하고 spring과 함께 사용하는 방법을 정리했습니다.

MyBatis는

SQL 매핑 프레임워크입니다. DB에 접근할 때,JDBC를 직접 다루지 않아도 되도록 사용하기 편한 인터페이스를 제공합니다. mybatis를 사용하면 JDBC에선 직접 해야했던 여러 가지를 자동으로 해주고, SQL문에 더 집중할 수 있습니다.

SQLSessionFactory

Mybatis에서 가장 핵심인 객체는 SQLSession입니다. SQLSessionFactory는 SQLSession을 만드는 것입니다.

Mapper

Mapper는 SQL에 대한 처리를 지정합니다.
Mybatis-Spring 을 이용하는 경우, 인터페이스와 XML,어노테이션으로 작성할 수 있습니다. Mapper 인터페이스를 보고 mybatis가 SQL을 자동으로 생성해서 알아서 처리해줍니다.

실제로 사용하는 법

Spring과 연동

pom.xml에 라이브러리 추가

maven을 사용한다면 pom.xml에 다음 설정을 추가하면 됩니다.
1번이 mybatis.jar이고 2,3,4번은 spring과 함께 쓰기 위해 필요한 것입니다.
mybatis는 JDBC와의 인터페이스입니다.
mybatis-spring은 spring과의 연동을 편하게 하는 인터페이스입니다.

  1. mybatis
  2. spring-jdbc
  3. spring-tx
  4. mybatis-spring

Mapper 인터페이스,설정 클래스

Mapper 인터페이스

Mapper 인터페이스를 만듭니다. 이 인터페이스를 보고 mybatis는 SQL문을 찾아서 만들어 줄 것입니다. 아래는 인터페이스 예시입니다.

설정 클래스

@Configuration이 붙은 설정 클래스에 Mybatis가 Mapper 인터페이스를 인식할 수 있도록 설정합니다.
@MapperScan을 이용해서 스캔할 패키지를 지정해줍니다.

이제 Mybatis-Spring이 Mapper 인터페이스를 보고 SQL 처리를 알아서 해줄 수 있습니다.

데이터 CRUD 구현

DTO(VO)를 만들고,mapper interface와 xml을 이용한 mybatis로 DB의 데이터를 다뤄봅니다.

DTO

간단한 DTO 클래스를 만듭니다.
lombok의 @Data 어노테이션을 이용합니다.
생성자와 getter/setter를 모두 만들어줍니다.

mapper 인터페이스

필요한 SQL에 해당하는 메서드를 등록합니다.
insert,read,delete,update 메서드를 등록합니다.
DTO 클래스의 속성명을 이용할 수도 있습니다.

mapper xml 파일

mapper xml 파일에 실제적인 SQL문을 작성해두고 mapper 인터페이스와 연결해둡니다. 그러면 나머지는 mybatis가 알아서 다 해줍니다.

특징

  1. 아래처럼 mapper 태그의 namespace를 Mapper 인터페이스의 경로로 합니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.roon.mapper.BoardMapper">
  1. 대표적으로 select,insert,delete,update 구문(태그)이 있습니다.
  2. 각 태그는 id를 가지며 이 id가 mapper 인터페이스에 등록한 메서드명입니다.
  3. resultType을 이용해 ResultSet도 지정할 수 있습니다.
  4. JDBC의 preparedStatement에서 '?'에 해당하는 처리는 '#{속성}'을 이용합니다.

구현 예시입니다.

profile
keep in positive mindset. I've got this.

0개의 댓글