我使用的是这样的camel-sql组件:
<to uri="sql:select * from myTable?dataSource=#java:/MySqlDS"/>
现在我想做的是从一个头值中检索sql命令。根据文档,我尝试了这个:
<to uri="sql::#${headers.sql}?dataSource=#java:/MySqlDS"/>
结果是:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法有错误;在第1行的"从测试中选择*"附近,查看与MySQL服务器版本对应的手册,以获得要使用的正确语法
(请注意开头和结尾有两个单引号(使用${headers.sql}
会导致:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法有错误;在第1行的"${headers.sql}"附近,查看与MySQL服务器版本相对应的手册,以获得要使用的正确语法
问题:我必须做些什么才能防止双引号并使用有效的Sql语法?
请注意,头值是在来自backingbean的路由中设置的,而不是在xml中,因此我不能这样做。。。或者我可以吗?:
<setHeader headerName="myHeader">
<constant>myValue</constant>
</setHeader>
请参阅有关动态http://camel.apache.org/how-to-use-a-dynamic-uri-in-to.html例如,将<toD>
用于动态。