2014-01-20 61 views
0

我深化發展的J2EE應用使用AppFuse有默認的設置與MySQL連接J2EE應用程序有兩個不同的數據庫

<!-- Database settings --> 
<dbunit.dataTypeFactoryName>org.dbunit.ext.mysql.MySqlDataTypeFactory</dbunit.dataTypeFactoryName> 
<dbunit.operation.type>CLEAN_INSERT</dbunit.operation.type> 
<hibernate.dialect>org.hibernate.dialect.MySQL5InnoDBDialect</hibernate.dialect> 
<jdbc.groupId>mysql</jdbc.groupId> 
<jdbc.artifactId>mysql-connector-java</jdbc.artifactId> 
<jdbc.version>5.1.27</jdbc.version> 
<jdbc.driverClassName>com.mysql.jdbc.Driver</jdbc.driverClassName> 
<jdbc.url>jdbc:mysql://localhost/${db.name}?createDatabaseIfNotExist=true&amp;amp;useUnicode=true&amp;amp;characterEncoding=utf-8&amp;amp;autoReconnect=true</jdbc.url> 
<jdbc.username>root</jdbc.username> 
<jdbc.password></jdbc.password> 
<jdbc.validationQuery>SELECT 1 + 1</jdbc.validationQuery> 

但我需要連接我與外部數據庫(SQL QERVER)應用程序中檢索某些數據。 我需要幫助來配置maven使用兩個不同的數據庫(mysql + sql服務器)

回答

0

maven將幫助您加載驅動程序jar文件。您將創建兩個數據源/會話工廠來實現此目的。

0

我認爲這是可以在一個簡短的指引很容易實現如下:

  1. 創建第二個「數據源」豆中的applicationContext-resources.xml中定義與諸如驅動程序類,URL MSSQL特定值等等。給它一個不同的bean id,也許是「dataSourceMSSQL」。如果你不想硬編碼的屬性值,將它們綁定到不同的屬性文件。爲了簡單起見,您可以對其進行硬編碼(不推薦)。

    如果您選擇其他方式,則需要創建另一個屬性文件來存儲mssql連接屬性,可能是jdbc-mssql.properties並將其添加到propertyConfigurer列表中。這也需要您對您的pom文件進行更改以包含<下的自定義設置! - 數據庫設置 - >部分。這可能有點複雜。

  2. 在applicationContext-dao.xml中創建另一個「sessionFactory」bean定義,使用MSSQL特定值(如hibernate方言等),並將其作爲dataSource屬性ref綁定到「dataSourceMSSQL」。給它一個不同的bean id或者「sessionFactoryMSSQL」。

  3. 線你的DAO需要新的sessionFactory即:

@Autowired
私人SessionFactory的sessionFactoryMSSQL;

希望這會爲你工作。

相關問題