Mule 穆勒斯福特+;使用单连接器配置动态连接不同的数据库服务器

Mule 穆勒斯福特+;使用单连接器配置动态连接不同的数据库服务器,mule,anypoint-studio,dataweave,mule-esb,mulesoft,Mule,Anypoint Studio,Dataweave,Mule Esb,Mulesoft,根据标志或无标志动态连接不同的数据库服务器,不希望使用choice connector连接其他数据库服务器,因为我们在使用多个数据库连接器的项目中使用同一数据库配置超过1000次。如果我们使用choice connector,我们需要在项目中的任何地方应用它。e、 g 将与Oracle数据库服务器的连接标记为True,将与SQL数据库服务器的连接标记为False,我假定为Mule4。如果您希望Mule3的表达式类似,但需要编写MEL而不是DataWeave表达式 我刚刚能够使用以下数据库配置全局

根据标志或无标志动态连接不同的数据库服务器,不希望使用choice connector连接其他数据库服务器,因为我们在使用多个数据库连接器的项目中使用同一数据库配置超过1000次。如果我们使用choice connector,我们需要在项目中的任何地方应用它。e、 g


将与Oracle数据库服务器的连接标记为True,将与SQL数据库服务器的连接标记为False,我假定为Mule4。如果您希望Mule3的表达式类似,但需要编写MEL而不是DataWeave表达式

我刚刚能够使用以下
数据库配置
全局元素连接到两个不同的数据库,一个MySQL和一个Derby:

<db:config name="Database_Config" doc:name="Database Config" doc:id="af508698-f0a0-44fa-89ee-d67e5d0a5ee8" >
    <db:generic-connection url='#[if (false) "jdbc:mysql://hostname:3306/training?user=name&amp;password=pass" else "jdbc:derby://localhost:1527/memory:training"]' driverClassName='#[if (false) "com.mysql.jdbc.Driver" else "org.apache.derby.jdbc.ClientDriver"]' />
</db:config>


您必须确保在
pom.xml

中有两个JDBC驱动程序,我假设是Mule4。如果您希望Mule3的表达式类似,但需要编写MEL而不是DataWeave表达式

我刚刚能够使用以下
数据库配置
全局元素连接到两个不同的数据库,一个MySQL和一个Derby:

<db:config name="Database_Config" doc:name="Database Config" doc:id="af508698-f0a0-44fa-89ee-d67e5d0a5ee8" >
    <db:generic-connection url='#[if (false) "jdbc:mysql://hostname:3306/training?user=name&amp;password=pass" else "jdbc:derby://localhost:1527/memory:training"]' driverClassName='#[if (false) "com.mysql.jdbc.Driver" else "org.apache.derby.jdbc.ClientDriver"]' />
</db:config>


您必须确保在您的
pom.xml

中有两个JDBC驱动程序,在mule 3中,我们无法动态地编写驱动程序类名,请参见以下语法:#[dw('oracle.JDBC.driver.OracleDriver when(true==true)否则为com.microsoft.sqlserver.JDBC.SQLServerDriver')]或以这种方式#[\\'oracle.JDBC.driver.OracleDriver'when(true==true)否则“com.microsoft.sqlserver.jdbc.SQLServerDriver”]您是否尝试创建两个全局元素并在全局元素上编写MEL条件?是的,我尝试过,您能否建议在应用程序执行期间更新全局属性的方法?我必须使用入站属性更新值。我也尝试过,但无法在mule3中使用。我确实尝试创建一个bean,并将
url
driverName
属性传递给StandardDataSource类,但没有成功。类名总是失败——我不相信在我端运行这些测试之后,它可以参数化TBH。在mule 3中,我们无法动态地编写驱动程序类名,请参见以下语法#[dw('oracle.jdbc.driver.OracleDriver when(true==true),否则为com.microsoft.sqlserver.jdbc.SQLServerDriver')]或以这种方式#[\“oracle.jdbc.driver.OracleDriver”时(true==true),否则为“com.microsoft.sqlserver.jdbc.SQLServerDriver”]您是否尝试过创建两个全局元素并在全局元素上编写MEL条件?是的,我尝试过,您能建议在应用程序执行期间更新全局属性的方法吗?我必须使用入站属性更新值。我也尝试过,但无法在mule3中使用。我尝试过创建一个bean并传递t他
url
driverName
属性到StandardDataSource类都没有用。类名总是失败——我认为在我这边运行这些测试之后,它不能参数化。