在 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>
您好,我正在尝试从数据库中选取记录,得到的输出为 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>