将JSON插入Mule中数据库的多个表中
我试图使用Mule ESB将JSON的内容插入MySql数据库。JSON看起来像: 在mule上,我希望在步骤上插入所有数据,如:将JSON插入Mule中数据库的多个表中,json,mule,esb,Json,Mule,Esb,我试图使用Mule ESB将JSON的内容插入MySql数据库。JSON看起来像: 在mule上,我希望在步骤上插入所有数据,如: 插入订单标题(id、客户id、备注、销售人员姓名) 插入订单详细信息(id、城市id、数量) 插入订单详细信息(id、城市id、数量) 目前,我已经在骡子上走了这么远: 好的。由于您已经将JSON转换为流中的对象,因此可以使用对象引用引用单个值,如obj.id、obj.client_id等 下一步获取数据库连接器 在“连接器配置”中配置MySQL数据库 操作:选
- 插入订单标题(id、客户id、备注、销售人员姓名)
- 插入订单详细信息(id、城市id、数量)
- 插入订单详细信息(id、城市id、数量)
好的。由于您已经将JSON转换为流中的对象,因此可以使用对象引用引用单个值,如obj.id、obj.client_id等
就这样!!如果你面临任何问题,请告诉我。希望它对你有用。这里有一篇精彩的文章
这应该会有所帮助。您可能需要修改,因为您需要先写入订单头数据,然后对订单详细信息使用收集拆分器,并将整个内容包装到事务中。使用数据库连接器的批量执行操作。 您将插入到多个表中。 例如: 查询文本
Insert INTO order_header(payload.id,payload.client_id,payload.comments,payload.salesman_name);
Insert INTO order_detail(payload.id,payload.cart_items[0].citem_id,payload.cart_items[0].quantity); etc..
我想我表达得不好,
cart\u项目的数量
如果是动态的,那么我无法对cart\u项目的数量进行固定查询。知道了!!因此,购物车项目的数量将决定订单详情表的“插入”语句的数量。试试这个:1。让1个DB连接器连接JSONtoObject连接器。2.添加逻辑,以便对ORDER_头表仅使用1条INSERT语句。3.然后,添加一个“For each”组件,该组件将在购物车项目集合上循环。JSON中的对象应该有一个购物车项目的集合。4.在“For each”中添加另一个数据库组件,并提及ORDER_DETAIL表的1条INSERT语句。For each将自动迭代cart_项目集合并执行所需的“插入”。
Insert INTO order_header(payload.id,payload.client_id,payload.comments,payload.salesman_name);
Insert INTO order_detail(payload.id,payload.cart_items[0].citem_id,payload.cart_items[0].quantity); etc..