gpt4 book ai didi

java - 使用 Camel 从数据库读取并写入文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:27:39 24 4
gpt4 key购买 nike

我想使用 Camel 从数据库读取记录并将记录写入文件。下面是我的代码:

import javax.sql.DataSource;
import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.SimpleRegistry;
import org.apache.commons.dbcp.BasicDataSource;

public class JDBCExampleSimpleRegistry {

public static void main(String[] args) throws Exception {
final String url = "jdbc:oracle:thin:@MYSERVER:1521:myDB";
DataSource dataSource = setupDataSource(url);

SimpleRegistry reg = new SimpleRegistry() ;
reg.put("myDataSource",dataSource);

CamelContext context = new DefaultCamelContext(reg);
context.addRoutes(new JDBCExampleSimpleRegistry().new MyRouteBuilder());

context.start();
Thread.sleep(5000);
context.stop();
}

class MyRouteBuilder extends RouteBuilder {
public void configure() {
String dst = "C:/Local Disk E/TestData/Destination/?fileName=output.txt";
from("direct:myTable")
.setBody(constant("select * from myTable"))
.to("jdbc:myDataSource")
.to("file://" + dst);
}
}

private static DataSource setupDataSource(String connectURI) {
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("oracle.jdbc.driver.OracleDriver");
ds.setUsername("sa");
ds.setPassword("devon1");
ds.setUrl(connectURI);
return ds;
}
}

上面的程序工作正常,CamelContext 优雅地关闭了。但是,不会创建目标文件。我做错了什么?

我是 Apache Camel 的新手,非常感谢任何帮助。我将 JDK7 与 Apache Camel 2.12.1 一起使用,但未使用 Spring。

最佳答案

您可以看一下 SQL 示例:http://camel.apache.org/sql-example.html然后写入文件,只是发送到文件而不是像 sql 示例那样调用 bean。

如果你想使用 JDBC 组件,那么它没有内置的消费者,所以你需要使用定时器或 quartz 调度器触发路由,每隔 X 次运行一次路由。

关于java - 使用 Camel 从数据库读取并写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19375082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com