본문 바로가기

마이바티스

스프링 부트에서 마이바티스 설정하기

1. application.properties 안에 mybaits 관련 설정 진행

# 마이바티스 config.xml 설정 파일 경로
mybatis.config-location=/mybatis/mybatis-config.xml
# 마이바티스에서 사용할 쿼리문.xml 경로
mybatis.mapper-locations=classpath:/mybatis/mapper/**/*.xml
# 언더바 '_' 를 camel case로 변경할건지 예) member_id => memberId
mybatis.configuration.map-underscore-to-camel-case=true

 

2. MybatisConfig 클래스 파일 작성

@Configuration
@EnableTransactionManagement
@RequiredArgsConstructor
@MapperScan(basePackages="com.example.demo.mapper") /* 여기에 mapper 인터페이스 파일 경로 지정 */
public class MybatisConfig {
    
    private final DataSource dataSource;
    
    @Bean
    public SqlSessionFactory sqlSessionFactory() throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        
        // mybatis-config.xml 설정
        Resource mybatisConfig = new ClassPathResource("mybatis/mybatis-config.xml");
        sessionFactory.setConfigLocation(mybatisConfig);
        
        // mapper.xml 위치 설정
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        Resource[] mapperLocations = resolver.getResources("classpath:/mybatis/mapper/*.xml");
        sessionFactory.setMapperLocations(mapperLocations);
        
        return sessionFactory.getObject();
    }
    
    @Bean
    public PlatformTransactionManager transactionManager() {
        return new DataSourceTransactionManager(dataSource);
    }
}

 

3. resources 안에 mybatis 디렉토리 생성 -> mybatis-config.xml 생성

 

4. 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>
    <!-- Mybatis 관련 설정 작성하기 * 아래 순서 중요, 바뀌면 안됨! -->

    <!-- SqlSessionTemplate 관련 설정 -->
    <settings>
        <setting name="logImpl" value="LOG4J2" /> <!-- 또는 SLF4J, LOG4J 등 다른 로깅 라이브러리 선택 -->
        <setting name="jdbcTypeForNull" value="NULL"/> <!-- Null 값 들어왔을때 기본 값 설정 / 이거 설정안하면 마이바티스는 오류 발생시킴 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/> <!-- "_" 언더스코어 같은 db랑 매핑을 자동으로 해주는 기능 -->
    </settings>

    <!-- Alias 관련 설정 -->
    <typeAliases>
        <!-- Members -->
        <typeAlias type="org.example.example_server.members.domain.Members" alias="Members"/>

        <!-- Java Type-->
        <typeAlias type="java.util.Map" alias="Map"/>
        <typeAlias type="java.util.HashMap" alias="HashMap"/>
        <typeAlias type="java.util.LinkedHashMap" alias="LinkedHashMap"/>
        <typeAlias type="java.util.List" alias="List"/>
        <typeAlias type="java.util.ArrayList" alias="ArrayList"/>

    </typeAliases>

    <!-- mapper 파일 위치 등록 -->
    <mappers>
        <package name="org.example.example_server"/>
    </mappers>

</configuration>
반응형