【问题标题】:Write Multiple queries in database connector in Mule在 Mule 的数据库连接器中编写多个查询
【发布时间】:2016-11-19 14:03:05
【问题描述】:

我想使用数据库连接器为同一个数据库的 3 个表编写选择和插入查询。我想知道是否有替代方案或如何使用 1 个数据库连接器来完成?

我最终使用了 5 个数据库连接器。但我认为这会使流程看起来很复杂。有没有其他方法可以做到这一点。

【问题讨论】:

    标签: mule database-connection mule-component


    【解决方案1】:

    你走错路了:)
    它可以通过单个 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>
    

    【讨论】:

    • 我正在创建一个全局连接器,并为多个数据库连接器引用相同的连接器。但我的问题是有没有办法使用 1 db 连接器?因为如果我们看到流程,那么它有 4-5 个 db 连接器用于 4-5 个操作。
    • 那不叫连接器。连接器是您使用数据库连接参数(如数据库 URL、数据库用户名、数据库密码等)全局定义的连接器。您在 Db 的流程中定义的东西操作称为数据库组件
    • 我说 db 连接器是因为当您将光标悬停在连接器选项卡上时工具包会显示 db 连接器。
    • 有没有办法在我们编写一个参数化查询的一个数据库组件中执行此操作,我们可以编写多个查询吗?
    • 有一个名为db:bulk-execute 的选项,您可以在其中定义多个查询... ref:- docs.mulesoft.com/mule-user-guide/v/3.5/… ... 但有一些限制,例如:- 它只支持插入、删除、更新操作并且在动态查询中使用它时存在错误:- forums.mulesoft.com/questions/33091/… ...不确定现在是否已修复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多