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

How to retrieve data using a db connector in ESB

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

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 接收名称列表。

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

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

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

%dw 2.0
output application/json
---
payload

如果你想要任何特定的字段或其他东西,那么你可以看到你的有效负载是如何构建的,并相应地进行数据编织