将JSON插入Mule中Database上的多个表中

时间:2016-02-04 19:03:43

标签: json mule esb

我正在尝试使用Mule ESB将JSON的内容插入到MySql数据库中。 JSON看起来像:

{
 "id":106636,
 "client_id":9999,
 "comments":"Credit",
 "salesman_name":"Salvador Dali", 
 "cart_items":[
              {"citem_id":1066819,"quantity":3}, 
              {"citem_id":1066820,"quantity":10}
            ]
}

在mule上我想在以下步骤中插入所有数据:

  • 插入INTO order_header(id,client_id,comments,salesman_name)
  • 插入INTO order_detail(id,citem_id,quantity)
  • 插入INTO order_detail(id,citem_id,quantity)

目前我已经在骡子上走了这么远: MuleSoft Flow

3 个答案:

答案 0 :(得分:2)

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

查询文字

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

答案 1 :(得分:1)

这里有一篇优秀的文章http://www.dotnetfunda.com/articles/show/2078/parse-json-keys-to-insert-records-into-postgresql-database-using-mule 这应该是有帮助的。您可能需要先修改order_header数据,然后使用order_detail的集合拆分器并将整个包装在事务中。

答案 2 :(得分:0)

确定。因为,您已经在流中将JSON转换为Object,您可以使用obj.id,obj.client_id等对象引用来引用各个值。

  1. 接下来获取数据库连接器。
  2. 在“连接器配置”中配置MySQL数据库。
  3. 操作:选择“批量执行”
  4. 在“查询文本”中:编写多个INSERT查询并从Object传递适当的值(从JSON转换)。请记住在查询文本中使用分号(;)分隔多个查询。
  5. 就是这样!如果您遇到任何问题,请告诉我。希望它对你有用..