如何使用ESB中的数据库连接器检索数据

问题描述 投票:0回答:1

enter image description here

我正在尝试通过调用存储过程并对其进行记录来从数据库中检索雇员的姓名。但是,不是名称,而是日志的输出:

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=*/*
}

我可以进行哪些更改,以便从数据库中接收名称列表。

mule esb anypoint-studio
1个回答
1
投票

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

enter image description here

enter image description here

您可以在记录器中看到其提到的有效负载类型payload=org.mule.extension.db.internal.result.statement.CloseableMap@8194c34

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

%dw 2.0
output application/json
---
payload

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

© www.soinside.com 2019 - 2024. All rights reserved.