【问题标题】:How to retrieve data using a db connector in ESB如何在 ESB 中使用 db 连接器检索数据
【发布时间】:2020-04-04 09:16:15
【问题描述】:

我试图通过调用存储过程并记录它来从数据库中检索员工姓名。 但不是名称,而是日志的输出:

INFO  2019-12-11 11:48:39,994 [[MuleRuntime].cpuLight.10: [testrun].testrunFlow.CPU_LITE @3bc66a50] [event: 0-12970c00-1bde-11ea-92a5-38dead78b440] org.mule.runtime.core.internal.processor.LoggerMessageProcessor: 
org.mule.runtime.core.internal.message.DefaultMessageBuilder$MessageImplementation
{
  payload=org.mule.extension.db.internal.result.statement.CloseableMap@8194c34
  mediaType=application/java; charset=UTF-8
  attributes=<not set>
  attributesMediaType=*/*
}

我可以进行哪些更改以便从 db 接收名称列表。

【问题讨论】:

  • 你连接的是什么类型的数据库?

标签: mule esb anypoint-studio


【解决方案1】:

默认情况下,您的数据库连接器会返回结果集。通过在 DB 调用后添加转换器并将输出类型设置为 json,将结果集转换为 json。如果你只想要一个特定的字段,那么你需要相应地完成你的转换

正如您在记录器中看到的那样,它提到了有效负载类型 payload=org.mule.extension.db.internal.result.statement.CloseableMap@8194c34

这是从存储过程读回的结果集的内部表示。所以只需将其转换为 json 或您想要的任何格式。在 DB 调用之后放置一个转换消息组件并执行以下操作:

%dw 2.0
output application/json
---
payload

如果您需要任何特定字段或其他内容,那么您可以查看有效负载的结构并相应地进行数据编织

【讨论】:

猜你喜欢
  • 2016-04-18
  • 1970-01-01
  • 1970-01-01
  • 2015-09-05
  • 1970-01-01
  • 2021-10-03
  • 1970-01-01
  • 1970-01-01
  • 2014-03-14
相关资源
最近更新 更多