是否可以在Spring控制器中定義數據源連接器?如何在控制器中定義Spring數據源?
我工作的一個工具:源表同步到目標表。
我會在我的控制器中定義源和目標(以同步不同的數據庫 - 在我看來,我可以選擇不同的源和目標數據庫)。
其實,我定義我的數據源文件調用:datasource.xml
我的代碼:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config />
<bean id="sourceDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/source"/>
<!--<property name="url" value="jdbc:mysql://linkSource"/>-->
<property name="username" value="username"/>
<property name="password" value="password"/>
</bean>
<bean id="targetDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/target"/>
<!--<property name="url" value="jdbc:mysql://linkTarget"/>-->
<property name="username" value="username"/>
<property name="password" value="password"/>
</bean>
</beans>
謝謝您的幫助!
謝謝你的幫忙! 但我覺得我的問題很糟糕。
其實,我有我的同步servelt.xml(只是一部分):
<!--sync query beans-->
<bean id="sourceDatasetQueryBean" class="ds.sync.db.SyncDatasetQuery" name="sourceDatasetsQuery">
<property name="dataSource" ref="sourceDataSource"/>
</bean>
<bean id="targetDatasetQueryBean" class="ds.sync.db.SyncDatasetQuery" name="targetDatasetsQuery">
<property name="dataSource" ref="targetDataSource"/>
</bean>
<bean id="sourceDatasetDescriptionQueryBean" class="ds.sync.db.SyncDatasetDescriptionQuery" name="sourceDatasetsDescriptionQuery">
<property name="dataSource" ref="sourceDataSource"/>
</bean>
<bean id="targetDatasetDescriptionQueryBean" class="ds.sync.db.SyncDatasetDescriptionQuery" name="targetDatasetsDescriptionQuery">
<property name="dataSource" ref="targetDataSource"/>
</bean>
...more...
而且,在我控制我使用:
@Autowired
@Qualifier("sourceDatasetQueryBean")
protected SyncDatasetQuery m_datasetQuerySource;
@Autowired
@Qualifier("targetDatasetQueryBean")
protected SyncDatasetQuery m_datasetQueryTarget;
@Autowired
@Qualifier("sourceDatasetDescriptionQueryBean")
protected SyncDatasetDescriptionQuery m_datasetDescriptionQuerySource;
@Autowired
@Qualifier("targetDatasetDescriptionQueryBean")
protected SyncDatasetDescriptionQuery m_datasetDescriptionQueryTarget;
...more...
我有11個表同步源和目標之間...
有沒有一種方法來分組我的查詢bean?
我必須同步在多個數據庫中進行。例如,我在不同的地方有3個站點,1個站點是源(A),2個站點是TARGET(B & C);例如,我在不同的地方有3個站點,1個站點是源(A),2個站點是目標(B & C);與表格(用YUI製作),我應該能夠同步A-> B和A-> C。
綜上所述:
1-與我的形式I選擇一個源和目標(serveral的數據庫),
2-我的形式發送(Ajax中),所選擇的源和選擇的目標到我的控制器,
3-我的控制器指向好的數據庫。
這樣做的最好方法是什麼?
使用工廠? 使用setDataSource?
謝謝你的幫助。
如果我有一個以上的目標更多(可能是5個目標),什麼是最好的在我的控制器,選擇好目標? 工廠是個好主意嗎? –