Wie Sie programmgesteuert ändern Datenbanken im Frühjahr mit einer DataSource?
Ich bin auf der Suche, um zu sehen, was ist der beste Weg, um die Verwendung eines DataSources im Frühjahr aber werden in der Lage, schalten Sie die Datenbank aus der Java-code? Hier sind meine zwei DataSources und gehen Sie zu den gleichen Datenbank-server, aber unterschiedliche Datenbanken.
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDataSource" />
<property name="url"
value="jdbc:sybase:Tds:10.20.30.40:50/DATABASE_EMS" />
<property name="username" value="userid" />
<property name="password" value="derp" />
</bean>
<bean id="dataSourceMain" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDataSource" />
<property name="url"
value="jdbc:sybase:Tds:10.20.30.40:50/DATABASE" />
<property name="username" value="userid" />
<property name="password" value="derp" />
</bean>
Habe ich Sie gebunden, um Ihre eigenen jeweiligen Bohne, aber ich freue mich auf meine legacy-code und es wird SEHR umständlich dies zu realisieren ist mit 2 separaten Bohnen. Gibt es irgendwelche Ideen/Gedanken auf, wie Sie können, verwenden Sie eine DataSource und wechseln der Datenbank, wenn ich muss?
- Wie möchten Sie das wechseln der Datenbank? Was sind die Kriterien, um zu entscheiden, die Datenbank?
- Das gute daran ist, dass es nicht zu dynamisch sein. Wenn es sein muss, kann ich explizit ändern, bevor Sie meine DAO.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie können dies tun, durch die Verlängerung der Feder ist
AbstractRoutingDataSource
und Verpackung Ihrer vorhandenen Datenquellen in der it. Überprüfen Sie dieser Artikel für details. Zitat aus dem Artikel:Siehe auch ähnliche Fragen auf ALSO:
Gibt es viele Möglichkeiten, wie Sie dies tun können. Zum Beispiel, können Sie erstellen eine service-Klasse
DatasourceSelectorService
, und basiert auf einigen input (z.B.: Konfiguration-Datei - /Benutzer-input) wählt diedatasource's
bean entsprechend.Alle anderen Klassen, die eine
datasource
zu erhalten sollte es über diese DatasourceSelectorService.