공부/프로그래밍

[Spring] Mybatis 설정하기 (기본설정)

demonic_ 2017. 4. 20. 14:13

Mybatis 설정을 다음과 같이 해둔다.

여기서는 기본적인 원리를 설명하는 것은 아니기 때문에 어느정도 아는 분이 보았으면 좋겠다.


${jdbc.driverClassName} 과 같은 설정은 Property파일을 이용하여 설정하였다.

사용할지 모른다면 값을 직접 넣어도 된다.



<!-- ########################## DB Setting ########################## -->

<bean id="dataSourceInfo" class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName" value="${jdbc.driverClassName}" />

<property name="url" value="${jdbc.url}" />

<property name="username" value="${jdbc.username}" />

<property name="password" value="${jdbc.password}" />

</bean>


<bean id="dataSourceMySQL" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">

<!-- 

위에서 설정한 DB 정보를 연결한다. 

이 설정은 Log4j를 이용하여 콘솔에 보이는 방법을 한 것이며 

왠만해선 설정해두는게 좋다.

-->

<constructor-arg ref="dataSourceInfo" />

<property name="logFormatter">

<bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter">

<property name="loggingType" value="MULTI_LINE" />

<property name="sqlPrefix" value="SQL         :  " />

</bean>

</property>

</bean>



<!-- 

Mybatis 의 SessionFactory 를 설정

dataSource 는 위의 dataSourceMySQL를 참조하도록 하고

configLocation 는 mybatis-config.xml을 통해 기타 추가 설정을 한다.(여기서는 생략)

mapperLocations 를 이용해서 매퍼의 위치를 설정한다.

-->

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

<property name="dataSource" ref="dataSourceMySQL" />

<property name="configLocation" value="/WEB-INF/spring/mybatis-config.xml" />

<!-- 매퍼의 위치가 1곳일 경우 사용 -->

<!-- <property name="mapperLocations" value ="/WEB-INF/classes/mapper/*.xml" 

/> -->

<!-- 매퍼의 위치가 폴더별로 하층구분을 한다면 아래의 설정을 사용 -->

<property name="mapperLocations">

<array>

<value>/WEB-INF/classes/mapper/*.xml</value>

<value>/WEB-INF/classes/mapper/*/*.xml</value>

</array>

</property>

</bean>




### sqlSessionFactory에서 지정했던 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>

<!-- 기본정보 셋팅 -->

<settings>

<setting name="cacheEnabled" value="true" />

<setting name="lazyLoadingEnabled" value="true" />

<setting name="aggressiveLazyLoading" value="true" />

<setting name="useGeneratedKeys" value="true" />

<setting name="defaultExecutorType" value="REUSE" />

<setting name="defaultStatementTimeout" value="300" />

<setting name="localCacheScope" value="SESSION" />

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

<!-- select 결과값이 null라도 key생성 --> 

<setting name="callSettersOnNulls" value="true"/>

</settings>

<typeAliases></typeAliases>


<!-- 날짜관련 설정 -->

<typeHandlers>

<typeHandler

javaType="java.sql.Timestamp"

handler="com.jc.nexstore.core.mybatis.UtcDateTypeHandler" />

<typeHandler

javaType="java.sql.Time"

handler="com.jc.nexstore.core.mybatis.UtcDateTypeHandler" />

<typeHandler

javaType="java.sql.Date"

handler="com.jc.nexstore.core.mybatis.UtcDateTypeHandler" />

</typeHandlers>

</configuration>



이정도 설정하면 사용이 가능하다.