我想使用数据库连接器为同一个数据库编写3个表的select和insert查询。我想知道是否有替代方案或如何使用1个数据库连接器完成?
我最终使用了5个数据库连接器。但我认为这会使流程变得复杂。还有其他办法吗?
答案 0 :(得分:0)
你走的路错了:) 它可以通过一个DB连接器执行3种不同的操作来实现 请点击此处的文档: - https://docs.mulesoft.com/mule-user-guide/v/3.8/database-connector
您需要定义连接数据库的单个全局数据库连接器: -
<db:generic-config name="GlobalDB_Config" url="jdbc:sqlserver://${mssql.server}:${mssql.port};databaseName=${mssql.database};user=${mssql.user};password=${mssql.password}" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" doc:name="Generic Database Configuration"/>
然后您可以使用引用相同全局数据库连接器的不同数据库组件在您的流中执行不同的操作(选择,插入,更新等): -
<db:insert config-ref="GlobalDB_Config">
<db:parameterized-query>INSERT INTO TABLE1(POSITION, NAME) VALUES (777, #[payload])</db:parameterized-query>
</db:insert>
或
<db:select config-ref="GlobalDB_Config">
<db:parameterized-query><![CDATA[SELECT POSITION from TABLE1 WHERE NAME = '#[message.inboundProperties['NAME']]></db:parameterized-query>
</db:select>