728x90
mybatis-config.xml 개요
- 위치: 일반적으로 src/main/resources 아래에 위치
- 역할: 전역 설정(매핑 방식, 캐시, 로그, 네이밍 전략 등)을 관리
- 주의: Spring Boot 환경에서는 application.yml이 대부분의 설정을 대체하지만, 복잡한 설정이 필요한 경우 여전히 mybatis-config.xml을 병행 사용합니다.
기본 구조 예시
<?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>
<!-- 1. 설정: 캐시, 로깅 등 -->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
<setting name="logImpl" value="STDOUT_LOGGING" />
</settings>
<!-- 2. 타입 별칭 등록 -->
<typeAliases>
<package name="com.example.project.domain"/>
</typeAliases>
<!-- 3. 매퍼 XML 파일 등록 -->
<mappers>
<mapper resource="mappers/UserMapper.xml"/>
<!-- 또는 package로 묶어서 등록 -->
<!-- <package name="com.example.project.mapper" /> -->
</mappers>
</configuration>
주요 요소 설명
1. <settings>
- MyBatis의 핵심 동작을 설정
xml
복사편집
<setting name="mapUnderscoreToCamelCase" value="true" />
→ DB의 user_name → Java의 userName으로 자동 매핑
<setting name="logImpl" value="STDOUT_LOGGING" />
→ 콘솔에 SQL 로그 출력. 다른 옵션: SLF4J, LOG4J, LOG4J2
2. <typeAliases>
- resultType="com.example.project.domain.User" → resultType="User"로 간단하게 작성 가능
<typeAliases>
<package name="com.example.project.domain"/>
</typeAliases>
3. <mappers>
- SQL이 담긴 Mapper XML 파일 등록
<mapper resource="mappers/UserMapper.xml" />
또는 디렉토리 전체를 등록:
<package name="com.example.project.mapper"/>
고급 설정 예시
전역 캐시 설정
<configuration>
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
</configuration>
기본 실행 전략 설정 (예: reuse or batch)
<settings>
<setting name="defaultExecutorType" value="REUSE"/>
</settings>
적용 방법 (Spring 환경)
application.yml 또는 .properties에 아래와 같이 등록:
mybatis:
config-location: classpath:mybatis-config.xml
체크리스트
항목 |
XML 헤더와 DTD 정확히 작성했는가? |
설정 파일 위치가 resources 폴더인가? |
typeAliases, mappers가 정상 등록됐는가? |
application.yml에서 경로가 올바르게 지정됐는가? |
LIST
'Mybatis > MyBatis 소개 및 환경 설정' 카테고리의 다른 글
프로젝트에 MyBatis 추가하기 (Maven/Gradle 설정) (0) | 2025.04.16 |
---|---|
ORM과 MyBatis의 차이점 (0) | 2025.04.16 |
MyBatis란 무엇인가? (0) | 2025.04.16 |