如何从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
以获取列表列表设置为会话变量。迭代并获取每个值。