我想使用标头值来设置sql组件中db表的名称。是否有捷径可寻? .to(“sql:drop table $ {in.header.tablename}”) 抛出无效字符异常
答案 0 :(得分:1)
如果要动态路由邮件,可以使用recipient-list。路线可能是
from("direct:a").recipientList(simple("sql:drop table ${in.header.tablename}")).
答案 1 :(得分:0)
使用sql组件而不是jdbc的一点是,前者允许您使用消息有效负载作为查询的参数。
对于您想要的,只需使用命名参数来访问查询中的标头。 sql component docs中有一个示例:
from("direct:projects")
.setHeader("lic", constant("ASF"))
.setHeader("min", constant(123))
.to("sql:select * from projects where license = :#lic and id > :#min order by id")
希望它有所帮助。