스프링 강의를 보고 따라하며 제 프로젝트를 진행 중 생긴 질문입니다.
저는 다중 DB 의 연결이 필요해서 작업 중 입니다.
05 데이터베이스 연동하기 부분에서 mybatis-config.xml 을 생성했는데 configuration 태그 안에 내용들은 주석으로 되어 있습니다.
아무래도 2개 혹은 다중 DB 연결시 이 안에 추가 설정을 하게 되고 또 root-context.xml에 추가 설정을 해줘야 될 것 같은데,
root-context.xml 에 보니 프로퍼티가 설정 되어 있고(jdbc.properties) 이걸 통해서 정보를 불러 오는것 같습니다.
이걸 mybatis-config.xml 로 연결해서 구분하게 하는 설정이 필요할 것 같은데 어떻게 하면 되는지 궁금합니다.
root-context.xml
```
<!-- Properties -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath:/jdbc.properties"></property>
<property name="fileEncoding" value="UTF-8"></property>
</bean>
<!-- MySQL A DB -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"></property>
<property name="url" value="${jdbc.urlA}"></property>
<property name="username" value="${jdbc.usernameA}"></property>
<property name="password" value="${jdbc.passwordA}"></property>
</bean>
<!-- MyBatis-Spring- A DB -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- MySQL B DB -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"></property>
<property name="url" value="${jdbc.urlB}"></property>
<property name="username" value="${jdbc.usernameB"></property>
<property name="password" value="${jdbc.passwordB}"></property>
</bean>
<!-- MyBatis-Spring- B DB -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
<property name="dataSource" ref="dataSource"></property>
</bean>
```
mybatis-config.xml
```
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="urlA" value="jdbc:mysql://ip:3306/ADB"/>
<property name="usernameA" value="A"/>
<property name="passwordA" value="A"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/A.xml"></mapper>
</mappers>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="urlA" value="jdbc:mysql://B:3306/BDB"/>
<property name="usernameA" value="B"/>
<property name="passwordA" value="B"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/B.xml"></mapper>
</mappers>
```
궁극의 목적은 IP가 다른 A 디비와 B 디비의 설정을 원하는 것입니다.
쓰고보니 쿼리 들어갈때는 또 어떻게 될런지 알아봐야겠네요...
sehongpark님의 답변
# 스프링 다중 DB 연동
자세하게 작성을 해드리고 싶으나.. 지금 당장 시간이 없는관계로 링크 남겨드릴께요
+ https://www.lesstif.com/pages/viewpage.action?pageId=20774954