骆驼,参数化查询和转换器

时间:2017-05-18 18:28:24

标签: sql spring apache-camel

我是Camel的新手,我想知道是否有可能在将Camel标头消息值转换为参数化查询之前将其转换为?我使用Camel和Spring启动。

在下面的例子中,我想要对象" o"例如,自动转换为字符串,并将其注入查询。

from(" direct:test")。setHeader(" y",o).to(" sql:select * from x where a =:#y&# 34;)

有可能吗?感谢

1 个答案:

答案 0 :(得分:0)

from("direct:test").setHeader("y", o).to("bean:someBean?method=somePublicMethod").to("sql:select * from x where a = ${body}")  

编写一个id为someBean的bean类,或者只将该类命名为SomeBean,并在其中编写一个名为somePublicMethod的公共方法。在里面你可以转换并将结果设置为驼峰消息体。像这样的东西

public void handleFiegeReadyEvent(Exchange exchange){
    exchange.getIn().getBody(); // retrieve the body of the message from previous stage. Cat it ti appropriate type.
    // do whatever you want to do here and generate the result
    exchange.getIn().setBody(result);
    exchange.getIn().setHeader("key1", value1);
    exchange.getIn().setHeader("key2", value2);  
}