Как сделать вставку базы данных в муле с массовым режимом для ввода XML
У меня есть входной 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 ответ
Давайте предположим, что вы используете 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
Затем вы можете сделать свою вставку койки после преобразования.