Как сделать вставку базы данных в муле с массовым режимом для ввода XML - PullRequest
0 голосов
/ 24 августа 2018

У меня есть входной XML как полезная нагрузка, и я хочу вставить значения XML в столбцы базы данных, используя массовый режим. Мул документация показывает, что массовая вставка может быть сделана только с коллекциями. Если это можно сделать путем реализации коллекций, как мы можем преобразовать xml в коллекцию, а затем выполнить массовую вставку вместо цикла For-each, что отнимает много времени.

Используемая версия Mule - v3.8

Давайте возьмем образец ниже,

Образец XML в качестве ввода полезной нагрузки,

<notes>
  <note number ="1">
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
    <address>
        <mode = "Email">
        <fulladdress>abc@gmail.com</fulladdress>
    </address>
    <organisation>
        <designation type="contractor">Software engineer</designation>
    </organisation>
  </note>
  <note>
  <note number ="2">
    <to>Smith</to>
    <from>Gerri</from>
    <heading>Hello</heading>
    <body>Hi Smith, nice to meet you.</body>
    <address>
        <mode = "Email">
        <fulladdress>def@gmail.com</fulladdress>
    </address>
    <organisation>
        <designation type="permanent">Software engineer</designation>
    </organisation>
  </note>
</notes>

Пожалуйста, ответьте на два вопроса ниже, 1. Как преобразовать этот входной XML в коллекцию? 2. Как добиться массовой вставки с коллекцией, созданной из вопроса 1?

1 Ответ

0 голосов
/ 26 августа 2018

Давайте предположим, что вы используете Mule 3, и ваша полезная нагрузка выглядит следующим образом:

<notes>
  <note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
  </note>
  <note>
    <to>Smith</to>
    <from>Gerri</from>
    <heading>Hello</heading>
    <body>Hi Smith, nice to meet you.</body>
  </note>
</notes>

Вы можете использовать DataWeave, чтобы преобразовать это в коллекцию объектов Java, представляющих note, например:

%dw 1.0
%output application/java
---
payload.notes.*note

Затем вы можете выполнить вставку койки после преобразования.

...