我有一个要求,我必须从表中获取包括列名的数据并将其保存为CSV。我编码如下,只获取表中的数据而不是列标题。有人可以帮助我吗
public void configure() throws Exception {
from("restlet:http://localhost:8583/.....")
.setBody(simple("select * from userDetails"))
.to("jdbc:dataSource")
.marshal()
.csv()
.to("file://C:/test.csv");
}
感谢您的帮助......
答案 0 :(得分:1)
在标题 - CamelJdbcColumnNames 中的to("jdbc:dataSource")
语句后,您可以在交换中使用列名称。
所以,基本上解决方案就是这样:
public void configure() throws Exception {
from("restlet:http://localhost:8583/.....")
.setBody(simple("select * from userDetails"))
.to("jdbc:dataSource")
.to("direct:setColumnNames")
.split(body())
.marshal().csv()
.to("file://C:/test.csv");
from("direct:setColumnNames")
.getHeader("CamelJdbcColumnNames")
.marshal().csv()
.to("file://C:/test.csv");
}
我建议您为自己编写一个自定义处理器,以解决您的问题。