Spring 개발환경 설정하기(3) - Spring+MyBatis 연동하기

2017년 3월 6일



Spring 개발환경 설정하기(1) - 프로젝트 생성하기~톰캣 설정
Spring 개발환경 설정하기(2) - 라이브러리 다운로드~DB연동

오늘은 Spring에 MyBatis를 연결하는 방법에 대해 포스팅 할 계획입니다.
Spring + MyBatis + MySQL의 설정에 대한 내용을 담고 있습니다.

참조한 공식 문서는 아래 링크와 같습니다 :)
http://www.mybatis.org/spring/ko/getting-started.html

1. 팩토리 빈을 생성하기 위해 root-context.xml에 아래 코드를 추가합니다.
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
</bean>
cs


2. src/main/resources에 mybatis-config.xml 파일을 생성해주세요.


3. mybatis-config.xml 파일의 내용을 아래 코드로 수정해주세요.
http://www.mybatis.org/mybatis-3/ko/getting-started.html
<?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>

</configuration>
cs


4. 1번의 코드를 아래와 같이 수정해주세요.
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configLocation" value="classpath:/mybatis-config.xml"></property
</bean>
cs

이제 Spring이 동작할 때 mybatis-config.xml이 함께 동작하게 됩니다 :)


5. src/test/java폴더에 MyBatisTester 클래스를 만들어주세요.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "file:src/main/webapp/WEB-INF/spring/root-context.xml" })
public class MyBatisTester {
    @Inject
    private SqlSessionFactory sqlSessionFactory;

    @Test
    public void myBatisTest() throws Exception {
        System.out.println(sqlSessionFactory);
    }

    @Test
    public void sessionTest() throws Exception {
        try (SqlSession session = sqlSessionFactory.openSession()) {
            System.out.println(session);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
cs

org.apache.ibatis.session.defaults.DefaultSqlSession... 메시지가 보여지면 성공입니다.
이제 Spring + MyBatis + MySQL의 연결까지 끝났습니다.


6. SqlSessionTemplate을 설정해주세요. root-context.xml에 아래의 코드를 추가하면 됩니다.
http://www.mybatis.org/spring/ko/sqlsession.html
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
    <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
cs

SqlSessionTemplate를 설정하면 간단하게는 자동으로 session을 자동으로 열고 닫아주고,
쓰레드 처리의 안정성, 트랜잭션의 관리를 보장해주고, 여러 DAO와 매퍼에서 공유할 수 있습니다.

Share:

0 개의 댓글