如何从mule数据库连接器中获取值,这是我从mule数据库连接器

问题描述:

得到的,请建议如何编写一个java类来读取mule有效载荷,并从相同的值中读取值并将它们分配给DTO,以便我可以返回相同的值。如何从mule数据库连接器中获取值,这是我从mule数据库连接器

如何从数据库值发回的DTO,我面临的阅读有效载荷或将其转化问题。

如果您使用的是企业版,那么您可以使用DataWeave将结果集转换为pojos。数据库连接器为行返回Hashmap的ArrayList。你可以遍历这个列表并创建pojo,例如。 -

%dw 1.0 
%output application/java 
--- 
payload map { 
({id: $.id, 
name: $.name}) as :object {class:'com.my.PersonPojo'} 
} 

可以使用MEL地图语法,而不是去为Java组件读取数据库的有效载荷。 干杯!

获取Java中的有效载荷由该

List<String> list = eventContext.getMessage().getPayload(); 

其分配给一个列表和循环,并将其加载到list<DTOObject>

List<DTOObject> dtos = new ArrayList<DTOObject>(); 
for(String eachValue : list) { 
    dto.setValue(eachValue); 
    dtos.add(dto); 
} 
return dtos; 

这将列表dtos返回有效载荷,你可以抓住他们在下一个组件。 如果你想从任何地方流让他们从你的java

eventContext.getMessage().setProperty("dtoList", dtos, PropertyScope.SESSION); 

抓住它像sessionVars.dtolist以获取列表列表设置为会话变量。迭代并获取每个值。