【发布时间】:2017-09-20 15:39:27
【问题描述】:
我必须从一个表中进行选择,然后在两个不同的数据库连接上插入另一个相同(相同结构)的表。 这是我的代码:
from("direct:" + getId)
.toD("sql:classpath:" +getSql1 + "?datasource= DataSourse1&usePlaceHolder=true"))
.setHeaders("Results", simple(${body})
toD("sql:classpath:" +getSql2 + "?datasource= DataSourse2&usePlaceHolder=true"))
在哪里 getSQL1 : 从 Product1 中选择 * 和 getSQL2 :插入 Product2 值(${headers.results})
我想,由于我试图插入的数据格式,它不起作用。我从 Select 中得到的是这样的: [{ID=130, 描述=Product130}] 所以,我需要清理我的数据,只得到 130,'Product130' 有什么帮助吗?谢谢。
【问题讨论】:
-
.setHeaders()?你有例外吗?无论如何,返回的数据格式是(默认情况下)Java 对象:
ListofMap。它是一个列表,因为那里没有任何东西可以阻止返回多条记录,以及多列的映射。如果您希望只有一条记录,您可以使用 sql uri 选项outputType=SelectOne,如果您有多个列,它将只给您一个 Map。我不确定你是如何将你的 sql 字符串外部化的......你也不需要 .toD() 来实现你想要的。
标签: select apache-camel sql-insert