我正在寻找一种正确的方法来设计流程。如果我想在5个不同的表上执行数据库操作,我是否需要5个数据库节点?或者如果我想声明3个流量变量,我需要3个可变变压器吗?我认为这会使流程变得不必要。我可以在一个数据库节点中编写多个查询吗?如果我不想写一个java类,那么正确的方法应该是什么?
答案 0 :(得分:0)
逐一回答您的问题: -
If I want to perform database operations on 5 different tables, do I need 5 database nodes?
否..可以通过执行不同操作的单个DB连接器来实现。
请点击此处的文档: - https://docs.mulesoft.com/mule-user-guide/v/3.8/database-connector。
您需要定义连接数据库的单个全局数据库连接器,并且可以由执行不同操作的流中的多个数据库组件引用(选择,插入,更新等)。请点击这里: -
Write Multiple queries in database connector in Mule
if I want to declare 3 flow variables, do I need 3 Variable transformers?
没有必要,可以使用<message-properties-transformer/>
来完成,您可以使用 scope="invocation"
属性一次在一个组件中定义多个变量。例如: -
<message-properties-transformer doc:name="Message Properties" scope="invocation">
<add-message-property key="var1" value="value1"/>
<add-message-property key="var2" value="value2"/>
</message-properties-transformer>
Can I write multiple queries in one database node?
对于插入,删除,更新操作,您可以使用批量选项在一个数据库组件中拥有多个查询参考: - https://docs.mulesoft.com/mule-user-guide/v/3.5/database-connector#bulk-updates: -
<db:bulk-execute config-ref="dbConfig">
update TABLE1 set NAME='Mercury' where POSITION=0;
update TABLE1 set NAME='Mercury' where POSITION=4
</db:bulk-execute>
您也可以参考: - http://www.slideshare.net/anir37/mule-db-bulk-execute
希望这有帮助:)