본문 바로가기
SpringBoot/(책)스프링부트 시작하기

[springboot] 3-2. springboot MySql mybatis 카멜 표기법 설정하기

by 평범한kiki 2023. 4. 22.

* mapUnderscoreToCamelCase 

- 데이터베이스 컬럼명의  _가 자바의 카멜표기법으로 변경되는 설정
예] 데이터베이스 컬럼 user_id - java dto에서는 userId 로 받아지게 한다.


1. application.properties 파일에 설정하기
   기본은 false로 되어 있다

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


2. 빈등록하기

/board/src/main/java/board/configuration/DatabaseConfiguration.java

-  sqlSessionFactoryBean.setConfiguration(mybatisConfig()) 이부분 추가해준다

@Bean  
@ConfigurationProperties(prefix = "mybatis.configuration") 
public org.apache.ibatis.session.Configuration mybatisConfig() { 
	return new org.apache.ibatis.session.Configuration(); 
}
	
//spring-mybatis 에서 SqlSessionFactory 생성위해 SqlSessionFactoryBean 사용
@Bean 
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception{
	SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
	//앞에서 만든 데이터 소스 설정
	sqlSessionFactoryBean.setDataSource(dataSource);
	//mybatis.configuration 설정
	sqlSessionFactoryBean.setConfiguration(mybatisConfig());
	//sqlSessionFactoryBean.setConfigLocation(applicationContext.getResource("classpath:/mybatis/mybatis-config.xml")); //xml로 설정시
	//mybatis 매퍼(Mapper)파일 위치 설정
	sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:/mapper/**/sql-*.xml")); 
	return sqlSessionFactoryBean.getObject();
}

 

* 만약 mybatis 설정 규칙을 xml로 등록한다 하면

1. 빈등록하기

    /board/src/main/java/board/configuration/DatabaseConfiguration.java

아래 부분 SqlSessionFactory에 추가해준다

-sqlSessionFactoryBean.setConfigLocation(applicationContext.getResource("classpath:/mybatis/mybatis-config.xml")); 

2. mybatis-config.xml 파일 생성한다

3. 내용 기술해준다.

- <setting name="mapUnderscoreToCamelCase" value="true"/>

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<settings>
		  <setting name="cacheEnabled" value="true"/>
		  <setting name="lazyLoadingEnabled" value="true"/>
		  <setting name="aggressiveLazyLoading" value="true"/>
		  <setting name="multipleResultSetsEnabled" value="true"/>
		  <setting name="useColumnLabel" value="true"/>
		  <setting name="useGeneratedKeys" value="true"/>
		  <setting name="mapUnderscoreToCamelCase" value="true"/>
	</settings>
	
</configuration>

참고)

* typeAliases 관련 설정/ jdbc
https://www.holaxprogramming.com/2015/10/18/spring-boot-with-mybatis/
https://frontierdev.tistory.com/215

 

Spring MyBatis사용 및 설정

Mybatis Mybatis 의존설정 기존 스프링 기반에서는 Mybatis.jar, Mybatis-Spring.jar 사용. 스프링 부트 기반에서는 mybatis-spring-boot-starter를 사용. compile ('org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3') implementati

frontierdev.tistory.com

* mybatis 
https://mybatis.org/mybatis-3/ko/configuration.html

 

MyBatis – 마이바티스 3 | 매퍼 설정

매퍼 설정 마이바티스 XML 설정파일은 다양한 설정과 프로퍼티를 가진다. 문서의 구조는 다음과 같다.: configuration properties 이 설정은 외부에 옮길 수 있다. 자바 프로퍼티 파일 인스턴스에 설정할

mybatis.org

* mybatis-config.xml 항목
https://baessi.tistory.com/8