Camel-SQL为什么使用StreamList似乎会加载所有ResultSet?

时间:2018-09-06 09:27:22

标签: spring-boot apache-camel camel-sql

嗨,

我要做什么?

我目前正在从事一个ESB项目(apache-camel + spring boot 2),在该项目中,我读取了一个MySQL表,该表的行数超过1亿。 我一次清空此表1行,转换该行并将其发送到另一个数据库。

我该怎么做?

当前,我使用camel-sql读取数据

//edited .from(sql:SELECT * FROM mytable?outputType=StreamList&outpuClass=MyClass) .split(body()).streaming() .bean(mybean, "transform") .end()

问题:

由于我无法进行选择*并在RAM中获取所有1亿行,因为它可能不够大,所以我深思着使用流。

因此: 看来,使用StreamList作为outputType仍然会首先获取所有行,然后才将其作为“流”(ResultSet)返回。

问题

难道我们不能仅使用PreparedStatement的属性来“一次一次”地从数据库中流式传输数据,而不是一次获取所有数据并破坏我的VM内存吗?

谢谢。

0 个答案:

没有答案