Spring Maven 프로젝트 만들기 - 3

Spring 프로젝트에 Mybatis 연동

1. 팩토리 빈을 생성하기 위해 root-context.xml에 아래 코드 추가


<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />

</bean>


2. src/main/resources에 mybatis-config.xml 파일 생성

3. 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>

</configuration>



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>



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();
}
}
}

org.apache.ibatis.session.defaults.DefaultSqlSession@... 이 보이면 성공


6. SqlSessionTemplate을 설정
root-context.xml에 아래의 코드를 추가


<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" />

</bean>

SqlSessionTemplate를 설정
 - session을 자동으로 열고 닫는다.
 - 쓰레드 처리의 안정성
 - Transaction 관리 보장
 - 여러 DAO 와 매퍼에서 공유 가능


댓글