我想解析xml文件的内容并创建查询以插入/更新数据库中的一些xml内容。
到目前为止,我能够在处理器中生成SQL查询,用它们填充正文,然后我想用SQL组件运行它们。
首先请告诉我这是不是建议的方法。
(例如,我觉得SQL组件只能运行1个查询)。
...
.process(new XmlToSqlProcessor())
.to("sql:${in.body}?dataSource=dataSource")
不起作用,$ {in.body}不会被其内容替换(意味着处理器中生成的查询集):
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '${in.body}' at line 1
我是否应该在处理器中完成所有工作(我想避免使用所有数据库样板),或者可能使用JDBC组件?
如果是,您能否确认SQL组件只能运行1个查询并且无法解析简单表达式语言? (我也试过:#$ {body},我在那里看到https://issues.apache.org/jira/browse/CAMEL-7455,但正如预期的那样,它被认为是一个参数,而不是整个查询)
谢谢!
编辑:在阅读之后,似乎SQL组件和JDBC组件也只能执行1个查询。因此,拥有自己的处理器显然是唯一的选择......让我知道我是不是错了; - )
答案 0 :(得分:0)
你是对的,sql组件只执行1个查询,不会评估$ {in.body}。您错过了路线中的两个概念:
尝试类似:
...
.process(new XmlToSqlProcessor())
.split().body()
.recipientList(simple("sql:${in.body}?dataSource=dataSource"))