2009-05-28 7 views
1

Ich entwickle eine Spring MVC-Anwendung mit Ibatis für die Datenbankinteraktionsebene. Ich möchte in der Lage sein, den Namen der Datenbank über eine Eigenschaftendatei in meinem Klassenpfad (oder über die Spring-XML-Konfiguration) festzulegen, so dass ich die Datenbank für eine bestimmte Anwendung im laufenden Betrieb ändern kann und durch Festlegen des Parameters geändert werden kann und erneutes Bereitstellen der Anwendung.So übergeben Sie globale Eigenschaften in ibatis

Was ich suchen, ist in der Lage, den Namen der Datenbank in einer vorhandenen Datenbank festzulegen. Nehmen wir an, ich habe ein System namens DB1 mit Datenbanken: user, user_qa und user_dev. Ich möchte in der Lage sein, die SQLs zu parametrieren, so dass anstatt das zu tun:

SELECT * FROM user.Logins 

I

SELECT * FROM $database.user$.Logins 

tun würde, damit ich die database.user Eigenschaft ändern und die Anwendung erneut bereitstellen statt Ich überschreibe jedes Mal eine Tonne SQL-Anweisungen, wenn ich den Namen der Datenbanken ändere.

+0

Hat eigentlich nichts mit Ibatis zu tun - es ist eine einfache Frühlingsfrage. – Gandalf

+0

Was ich hauptsächlich suche, ist keine Datenbankkonfigurationseinstellung. Aber auf der sqlmap-Ebene, um tatsächlich einen Parameter zu setzen, kann ich $ database.users $ .user_roles und $ database.lists $ .someListDB verwenden, wobei $ database.users $ und $ database.lists $ Parameter aus einer .properties-Datei sind. Auf dem gleichen System kann ich die dev db, eine qa db und eine production db haben und nur die Eigenschaftendatei entsprechend ändern. Ich denke, ich werde meine Frage aktualisieren ... –

Antwort

0

Ziemlich einfach im Frühjahr zu tun. Angenommen, Sie haben eine grundlegende conf Datei [database.properties]:

jdbc.username = user 
jdbc.host = mydbserver.com 

Dann in Ihrem Frühling Config XML-Datei:

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
<property name="location"> 
<value>classpath:database.properties</value> 
</property> 
</bean> 

Jetzt, wo Sie diese Variablen den Namen in der Konfigurationsdatei ersetzt werden soll:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
<property name="host"><value>${jdbc.host}</value></property> 
<property name="username"><value>${jdbc.username}</value></property> 
</bean> 
Verwandte Themen