【问题标题】:Iterating resultset Iterator in mule esb在 mule esb 中迭代结果集迭代器
【发布时间】:2019-06-24 01:30:18
【问题描述】:
您好,我正在尝试从数据库中挑选记录,得到的输出为 org.mule.module.db.internal.result.resultset.ResultSetIterator@6f6d8fa8
我想遍历记录以用于其他目的我尝试了 foreach 消息处理器但在每个内部也得到了结果集而不是映射。我期待映射或列表是否有办法从结果集迭代器转换为映射或列表骡子。
【问题讨论】:
标签:
java
groovy
mule
anypoint-studio
【解决方案1】:
ResultSetIterator 实现了 Java 的 Iterator。迭代时,迭代器返回一个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 */
}
【解决方案2】:
如果您取消选中数据库组件中的“流式传输”选项,则返回对象将是地图列表。然后您可以遍历您想要查看的地图! :)
【解决方案3】:
Mule 带有内置组件<foreach>。它允许您遍历从数据库中搜索到的结果集。
<foreach>
<logger level="INFO" message="Entry map: #[payload]" />
</foreach>