骡子:设计流程的最佳方法

时间:2016-11-18 20:48:29

标签: mule mule-component

我正在寻找一种正确的方法来设计流程。如果我想在5个不同的表上执行数据库操作,我是否需要5个数据库节点?或者如果我想声明3个流量变量,我需要3个可变变压器吗?我认为这会使流程变得不必要。我可以在一个数据库节点中编写多个查询吗?如果我不想写一个java类,那么正确的方法应该是什么?

1 个答案:

答案 0 :(得分:0)

逐一回答您的问题: -

  1. If I want to perform database operations on 5 different tables, do I need 5 database nodes?
  2. 否..可以通过执行不同操作的单个DB连接器来实​​现。 请点击此处的文档: - https://docs.mulesoft.com/mule-user-guide/v/3.8/database-connector
    您需要定义连接数据库的单个全局数据库连接器,并且可以由执行不同操作的流中的多个数据库组件引用(选择,插入,更新等)。请点击这里: -
    Write Multiple queries in database connector in Mule

    1. if I want to declare 3 flow variables, do I need 3 Variable transformers?
    2. 没有必要,可以使用<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>  
      
      1. Can I write multiple queries in one database node?
      2. 对于插入,删除,更新操作,您可以使用批量选项在一个数据库组件中拥有多个查询参考: - 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

        希望这有帮助:)