我试图通过调用存储过程并将其记录下来从数据库中检索雇员的姓名。 但是,不是名称,而是日志的输出:
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=*/*
}
我可以进行哪些更改,以便从数据库中接收名称列表。
答案 0 :(得分:1)
默认情况下,您的数据库连接器返回一个结果集。通过在DB调用之后添加一个转换器将您的结果集转换为json并将输出类型设置为json。如果只需要一个特定字段,则需要相应地进行转换
正如您在记录器中看到的那样,它提到了有效负载类型 payload=org.mule.extension.db.internal.result.statement.CloseableMap@8194c34
是从存储过程读回的结果集的内部表示。因此只需将其转换为json或您想要的任何格式。在数据库调用之后放置一个转换消息组件,然后执行以下操作:
%dw 2.0
output application/json
---
payload
如果您想要任何特定的字段或东西,那么您可以查看有效负载的结构并相应地进行数据编织