다중 디비 설정
- 작성자 :
- 김*은
- 작성일 :
- 2016-04-05 09:40:32
- 조회수 :
- 1,117
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:psl:dataaccess:mybatisguide
위의 방법중에 매퍼 인터페이스를 사용중입니다.
단일 db 일 경우 잘 되는데..
다중 db 사용할 경우 어떻게 해야 하는지 알려주세요.
위의 방법중에 매퍼 인터페이스를 사용중입니다.
단일 db 일 경우 잘 되는데..
다중 db 사용할 경우 어떻게 해야 하는지 알려주세요.
A
김지은님 안녕하세요.
표준프레임워크센터입니다.
스프링에서 MyBatis 사용을 위한 설정은
SqlSessionFactoryBean에서 생성하는 SqlSession을 빈으로 등록하고,
생성하신 여러 개의 dataSource를 각 SqlSession 빈 프로퍼티로 지정해주시면 됩니다.
(아래참고)
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
...
</bean>
<bean id="otherSqlSession" class=""org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="otherDataSource" />
...
</bean>
...
<bean id="dataSource" class="...">
<bean id="otherDataSource" class="...">
표준프레임워크에서 MyBatis 활용방법에 대해 설명드리겠습니다.
(참고URL) <a href='http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:psl:dataaccess:mybatisguide' target='_blank'>http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:psl:dataaccess:mybatisguide</a>
첫번째 방법은,
위에서 말씀드린대로 표준프레임워크에서 제공하는 EgovAbstractMapper를 상속하여 DAO클래스를 작성하시는 방법입니다.
DAO클래스에서 아래 메서드를 재정의하시면 위에서 등록한 개별 SqlSession 객체를 사용할 수 있습니다.
@Resource(name = "otherSqlSession")
public void setSqlSessionFactory(SqlSessionFactory sqlSession) {
super.setSqlSessionFactory(sqlSession);
}
두번째 방법은,
Mapper 인터페이스를 활용한 방법으로
제시한 가이드에 따라 Mapper인터페이스를 작성해주시고,
MapperConfigurer 빈설정 시 아래와 같이 변경해주시면 됩니다.
<bean class="egovframework.rte.psl.dataaccess.mapper.MapperConfigurer">
<property name="basePackage" value="풀패키지명" />
<property name="sqlSessionFactoryBeanName" ref="sqlSession" />
</bean>
<bean class="egovframework.rte.psl.dataaccess.mapper.MapperConfigurer">
<property name="basePackage" value="풀패키지명" />
<property name="sqlSessionFactoryBeanName" ref="otherSqlSession" />
</bean>
...
이 때 DB별로 Mapper인터페이스를 구분하시고, Mapper인터페이스가 담긴 해당 패키지를 지정해주시면 됩니다.
감사합니다.
표준프레임워크센터입니다.
스프링에서 MyBatis 사용을 위한 설정은
SqlSessionFactoryBean에서 생성하는 SqlSession을 빈으로 등록하고,
생성하신 여러 개의 dataSource를 각 SqlSession 빈 프로퍼티로 지정해주시면 됩니다.
(아래참고)
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
...
</bean>
<bean id="otherSqlSession" class=""org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="otherDataSource" />
...
</bean>
...
<bean id="dataSource" class="...">
<bean id="otherDataSource" class="...">
표준프레임워크에서 MyBatis 활용방법에 대해 설명드리겠습니다.
(참고URL) <a href='http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:psl:dataaccess:mybatisguide' target='_blank'>http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:psl:dataaccess:mybatisguide</a>
첫번째 방법은,
위에서 말씀드린대로 표준프레임워크에서 제공하는 EgovAbstractMapper를 상속하여 DAO클래스를 작성하시는 방법입니다.
DAO클래스에서 아래 메서드를 재정의하시면 위에서 등록한 개별 SqlSession 객체를 사용할 수 있습니다.
@Resource(name = "otherSqlSession")
public void setSqlSessionFactory(SqlSessionFactory sqlSession) {
super.setSqlSessionFactory(sqlSession);
}
두번째 방법은,
Mapper 인터페이스를 활용한 방법으로
제시한 가이드에 따라 Mapper인터페이스를 작성해주시고,
MapperConfigurer 빈설정 시 아래와 같이 변경해주시면 됩니다.
<bean class="egovframework.rte.psl.dataaccess.mapper.MapperConfigurer">
<property name="basePackage" value="풀패키지명" />
<property name="sqlSessionFactoryBeanName" ref="sqlSession" />
</bean>
<bean class="egovframework.rte.psl.dataaccess.mapper.MapperConfigurer">
<property name="basePackage" value="풀패키지명" />
<property name="sqlSessionFactoryBeanName" ref="otherSqlSession" />
</bean>
...
이 때 DB별로 Mapper인터페이스를 구분하시고, Mapper인터페이스가 담긴 해당 패키지를 지정해주시면 됩니다.
감사합니다.