> For the complete documentation index, see [llms.txt](https://docs.sysout.co.kr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sysout.co.kr/web/back-end/spring-boot/spring-boot-jdbc/orm-framework/mybatis.md).

# myBatis

## myBatis

**myBatis**는 Java에서 사용할 수 있는 강력한 ORM Framework 중 하나이다. Java SE, EE, Spring, Spring Boot 등 다양한 환경에서 사용할 수 있으며, 이 문서에서는 **Spring Boot**에서 **myBatis**를 설정하는 방법에 대해서 다룬다.

## DB 정보

[Database 정보](/web/back-end/spring-boot/spring-boot-jdbc/database.md)를 기반으로 진행한다

## Spring Boot 프로젝트 생성

Spring Boot에서는 myBatis 의존성을 관리하기 때문에 프로젝트 생성 시 의존성 설정이 가능하다.

<div align="left"><figure><img src="https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_TNZwLuHV9ipYLbvRq%2Fuploads%2FXBpLQDfwjZ4oLOD49zSd%2Fimage.png?alt=media&amp;token=87443d9e-d782-4181-92ff-4ad81557e20b" alt=""><figcaption></figcaption></figure> <figure><img src="https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_TNZwLuHV9ipYLbvRq%2Fuploads%2Fg055Z5pxkAxisOntHAYF%2Fimage.png?alt=media&amp;token=2eef2279-8ef9-4d51-b348-e2770ba7fe57" alt=""><figcaption></figcaption></figure></div>

기본적으로 사용하던 의존성까지 포함하여 다음과 같이 설정한 뒤 생성한다.

<div align="left"><figure><img src="https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_TNZwLuHV9ipYLbvRq%2Fuploads%2Fsv9G1lppVamrjLmDvEwg%2Fimage.png?alt=media&amp;token=812197e8-bf38-4170-9bf6-b8249dffaf7a" alt=""><figcaption></figcaption></figure></div>

## mybatis-spring 설정

생성한 Spring Boot 프로젝트에 myBatis를 설정하기 위해 다음과 같은 작업이 필요하다.

* Spring Boot 설정파일에 myBatis 정보 설정
* myBatis mapper 생성
* 사용할 Entity 생성

&#x20;

### Spring Boot 설정

Spring Boot에서 사용하는 설정파일은 두 가지 형태가 있다.

* application.properties
* application.yml

표시 방식의 차이가 있으므로 각각에 맞게 다음과 같이 작성한다.

#### application.properties

```properties
# JDBC
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=khacademy
spring.datasource.password=khacademy

# myBatis
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.mapper-locations=/mybatis/mapper/**/*-mapper.xml
mybatis.type-aliases-package=com.hacademy.boot07.entity
```

#### application.yml

```yaml
spring:
  datasource:
    driver-class-name: oracle.jdbc.OracleDriver
    url: jdbc:oracle:thin:@localhost:1521:xe
    username: khacademy
    password: khacademy
   
mybatis:
  configuration:
    map-underscore-to-camel-case: true
  mapper-locations:
  - /mybatis/mapper/**/*-mapper.xml
  type-aliases-package: com.hacademy.boot07.entity
```

설정하는 항목은 다음과 같다.

* map-underscore-to-camel-case - 자동 매핑 시 underscore 처리된 이름을 camel case로 변경할 것인지 설정
* mapper-locations - myBatis Mapper 파일의 위치를 지정(패턴 설정)
* type-aliases-package - myBatis Mapper에서 사용할 클래스가 담긴 패키지 설정
