Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

그라가승훈

[SpringBoot] - Mybatis 설정 본문

Spring

[SpringBoot] - Mybatis 설정

그라가승훈 2023. 10. 15. 20:56

1. DatabaseConfiguration 클래스

src/main/java/baord 패키지 밑에 configuration 패키지 생성 후 DatabaseConfiguration 클래스 생성

@Configuration
@PropertySource("classpath:/application.properties")
public class DatabaseConfiguration {

    @Autowired
    private ApplicationContext applicationContext;

    /**
     * hikari 설정
     */
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.hikari")
    public HikariConfig hikariConfig() {
        return new HikariConfig();
    }

    /**
     * hikari 설정
     */
    @Bean
    public DataSource dataSource() throws Exception {
        DataSource dataSource = new HikariDataSource(hikariConfig());
        System.out.println("dataSource :: " + dataSource);
        return dataSource;
    }

    /**
     * mybatis 설정
     */
    @Bean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception{
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);
        sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:/mapper/**/sql-*.xml"));
        sqlSessionFactoryBean.setConfiguration(mybatisConfiguration());

        return sqlSessionFactoryBean.getObject();
    }

    /**
     * mybatis 설정
     */
    @Bean
    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
        return new SqlSessionTemplate(sqlSessionFactory);
    }

}

2. application.properties 에 설정 추가

mybatis.configuration.map-underscore-to-camel-case=true

데이터베이스는 일반적으로 스네이크 표기법, 자바는 카멜 표기법 을 사용하므로 매핑해주는 기능 설정 (default = false)

3. 빈 등록하기

앞에서 설정한 mapUnderscoreToCamelCase 를 적용하기 위해 DatabaseConfiguration 클래스에 코드 추가

/**
 * mybatis 빈 등록
 */
@Bean
@ConfigurationProperties(prefix = "mybatis.configuration")
public org.apache.ibatis.session.Configuration mybatisConfiguration() {
    return new org.apache.ibatis.session.Configuration();
}

위 프로퍼티를 설정하지 않아도 아래처럼 세팅해줄 수 있다.

@Bean
public org.apache.ibatis.session.Configuration mybatisConfiguration() {
    org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
    configuration.setMapUnderscoreToCamelCase(true);
    return configuration;
}
Comments