我正在使用appfuse开发J2EE应用程序,该应用程序具有mySQL的默认设置
<!-- 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;useUnicode=true&amp;characterEncoding=utf-8&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 server)
答案 0 :(得分:0)
maven将帮助您加载驱动程序jar文件。您将创建两个数据源/会话工厂来实现此目的。
答案 1 :(得分:0)
我认为这可以通过以下简要指南轻松实现:
在applicationContext-resources.xml中创建第二个“dataSource”bean定义,其中包含MSSQL特定值,例如驱动程序类,url等。也许给它一个不同的bean id,“dataSourceMSSQL”。如果您不想使用硬编码属性值,请将它们绑定到不同的属性文件。为简单起见,您可以对其进行硬编码(不推荐)。
如果您选择其他方法,则需要创建另一个属性文件来存储mssql连接属性,可能是jdbc-mssql.properties并将其添加到propertyConfigurer列表中。这还要求您对pom文件进行更改,以包含&lt;! - 数据库设置 - &gt; 部分下的自定义设置。这可能有点复杂。
在applicationContext-dao.xml中使用MSSQL特定值(如hibernate dialect等)创建另一个“sessionFactory”bean定义,并将其作为dataSource属性ref绑定到“dataSourceMSSQL”。给它一个不同的bean id,“sessionFactoryMSSQL”。
连接需要新sessionFactory的DAO,例如:
@Autowired
私有SessionFactory sessionFactoryMSSQL;
希望这对你有用。