Search code examples
muleesbanypoint-studio

How to retrieve data using a db connector in ESB


enter image description here

I am trying to retrieve names of employees from the database by calling a stored procedure and logging it. But Instead of the names , this is the output of the log:

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

what changes can I make so that I recieve the list of names from db.


Solution

  • your database connector by defaults returns a resultset. convert your resultset into a json by adding a transformer after DB call and set output type to json. if you want only one particular field then you need to have your transform done accordingly

    enter image description here

    enter image description here

    as you can see in your logger that its mentioned the payload type payload=org.mule.extension.db.internal.result.statement.CloseableMap@8194c34

    that is the internal representation of the result set read back from the stored procedure. so just convert it into json or whatever format you want. Put a transform message component after DB call and do the following:

    %dw 2.0
    output application/json
    ---
    payload
    

    if you want any particular field or something then you can see how your payload is getting structured and do the dataweave accordingly