在 mule esb 中迭代结果集 Iterator

Iterating resultset Iterator in mule esb

您好,我正在尝试从数据库中选取记录,得到的输出为 org.mule.module.db.internal.result.resultset.ResultSetIterator@6f6d8fa8 我想出于其他目的遍历记录我尝试了 foreach 消息处理器但在内部 for each 也得到了结果集而不是 map.I 我期待映射或列表有没有办法从结果集迭代器转换为映射或列在 mule 中。

ResultSetIterator implements Java's Iterator。迭代迭代器时 returns a Map<String, Object>.

这意味着您可以按 Java 方式使用它:

ResultSetIterator iter = ...

while(iter.hasNext()) {
    Map foo = iter.next()
    /* Do something with foo */
}

或者,你可以使用Groovy的GDK添加的方法,比如each(Closure):

ResultSetIterator iter = ...

iter.each {
   /* Do something with 'it' variable, which would be a Map */
}

如果您取消选中数据库组件中的 "streaming" 选项,返回的对象将是地图列表。然后您可以遍历您想要查看的地图! :)

Mule 带有内置组件 <foreach>。它允许您遍历从数据库中选择的结果集。

<foreach>
    <logger level="INFO" message="Entry map: #[payload]" />
</foreach>