在两个不同的DB连接上从相同的表中选择/插入

时间:2017-09-20 15:39:28

标签: select apache-camel sql-insert

我必须从表中进行选择并插入到两个不同数据库连接上的另一个相同(相同结构)表中。 这是我的代码:

http://localhost:3000/users/main.js

,其中 getSQL1:选择* FROM Product1 和 getSQL2:插入到Product2值($ {headers.results})

我想,由于我试图插入的数据格式,它不起作用。我从Select中得到的是这样的: [{ID = 130,DESCRIPTION = Product130}] 所以,我需要清理我的数据,只获得130,'Product130' 有帮助吗?感谢。

1 个答案:

答案 0 :(得分:1)

假设您的实际代码有效并且您只是传输一条记录,请将getSql1选择选项部分更改为:

"?datasource= DataSourse1&usePlaceHolder=true&outputType=SelectOne"

这会将地图放入您的邮件正文中,而不是Map of Map。无需将结果复制到标题中。使用Camel的SQL组件,如果正文类型是Java Map,它将在您的邮件正文中查找命名查询参数。

接下来更改插入以使用Map中的参数:

insert into Product2 (ID, DESCRIPTION) values (:#ID, :#DESCRIPTION)

注意我包含了列名。这是为了安全和良好的做法。如果列顺序与原始表不一样,那么这仍然有效。