将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数据库 操作:选

我试图使用Mule ESB将JSON的内容插入MySql数据库。JSON看起来像:

在mule上,我希望在步骤上插入所有数据,如:

  • 插入订单标题(id、客户id、备注、销售人员姓名)
  • 插入订单详细信息(id、城市id、数量)
  • 插入订单详细信息(id、城市id、数量)
目前,我已经在骡子上走了这么远:
好的。由于您已经将JSON转换为流中的对象,因此可以使用对象引用引用单个值,如obj.id、obj.client_id等

  • 下一步获取数据库连接器
  • 在“连接器配置”中配置MySQL数据库
  • 操作:选择“批量执行”
  • 在“查询文本”中:编写多个插入查询,并从对象(从JSON转换)传递适当的值。记住在查询文本中用分号(;)分隔多个查询

  • 就这样!!如果你面临任何问题,请告诉我。希望它对你有用。

    这里有一篇精彩的文章
    这应该会有所帮助。您可能需要修改,因为您需要先写入订单头数据,然后对订单详细信息使用收集拆分器,并将整个内容包装到事务中。

    使用数据库连接器的批量执行操作。 您将插入到多个表中。 例如:

    查询文本

    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..