如果应用程序正在运行并连接到Database-1。通过应用程序我想将某个数据库中的某些数据(可以是任何其他数据库的数据库1)复制到另一个数据库。可以有3-4个数据库。并且架构对于所有数据库完全相同。 是否可以这样做? 我读过" AbstractRoutingDataSource " here。但是我不想在运行时连接到数据库。它应该在运行之后。
我的spring-config.xml
包含JdbcTemplate
<bean id="EnvJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="envDataSource" />
</property>
</bean>
我为envDataSource(数据库1)创建了bean
<bean id="envDataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"/>
<property name="url"/>
<property name="username"/>
<property name="password"/>
</bean>
答案 0 :(得分:1)
似乎你只需要创建更多的bean,并在需要的地方注入它们,并在需要时调用它们。这不是那么聪明,但你不需要过度设计这个。
<bean id="envDataSource1" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"/>
<property name="url"/>
<property name="username"/>
<property name="password"/>
</bean>
<bean id="envDataSource2" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"/>
<property name="url"/>
<property name="username"/>
<property name="password"/>
</bean>
<bean id="EnvJdbcTemplate1" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="envDataSource1" />
</property>
</bean>
<bean id="EnvJdbcTemplate2" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="envDataSource2" />
</property>
</bean>
答案 1 :(得分:0)
Hibernate中有一个内置功能来支持多个模式/数据库。找到它here