본문 바로가기

Spring

Spring(16) - Mybatis연동

이전 글에 Hibernate ORM프레임워크에 대해서 좋은글을 써놓고 결국엔 Mybatis연동법을 포스팅하게되네요..(머쓱)
어쩔수 없이 우리나라에선 Mybatis를 많이 사용하니...;; Mybatis연동방법에 대해서 알아보겠습니다.

먼저 Mybatis를 스프링과 연동하는 방법은 다음과 같습니다.

  • Mybatis-Spring 모듈 추가
  • SqlSessionFactoryBean을 이용해서 SqlSessionFactory 설정
  • 트랜잭션 설정
  • Mybatis를 이용한 DAO구현

1. Mybatis-Spring 모듈 추가

1
2
3
4
5
6
7
8
9
10
<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.2</version>
</dependency>
<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.3</version>
</dependency>
cs

mybatis-spring모듈을 등록함으로써 DataSource및 트랜잭션 관리 기능을 Mybatis와 연동하는데 필요한 기능을 제공해준다.

2. SqlSessionFactoryBean

1
2
3
4
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="mapperLocations" value="classpath:/**/*_SQL.xml"/>
</bean>
cs

mapperLocations에는 매핑쿼리를 담고있는 파일의 경로를 지정해준다.

3. Mybatis를 이용한 DAO구현

- SqlSessionTemplate을 이용

1
2
3
4
5
6
7
8
 <bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="mapperLocations" value="classpath:/**/*_SQL.xml"/>
 </bean>
 
 <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="sqlSession"/>
 </bean>
cs

 

이런식으로 sqlSessionFactoryBean을 생성자로 의존주입받아서 sqlSessionTemplate을 빈으로 등록한다. DAO클래스는 sqlSessionTemplate을 생성자나 프로퍼티 혹은 @Autowired, @Resource(name="sqlSessionTemplate")를 이용해 자동으로 주입받아서 SqlSession에 정의된 메서드를 사용할 수 있다.