你好,
我想做什么?
我目前正在研究一个 ESB 项目(apache-camel + spring boot 2),我在其中读取了一个超过 100 000 000 行的 MySQL 表。我一次清空该表 1 行,转换该行并将其发送到另一个数据库。
我该怎么做?
目前我使用 camel-sql 读取数据
//edited
.from(sql:SELECT * FROM mytable?outputType=StreamList&outpuClass=MyClass)
.split(body()).streaming()
.bean(mybean, "transform")
.end()
问题 :
由于我无法选择 * 并在我的 RAM 中获取所有 100M 行,因为它可能不够大,所以我想使用流。
因此:似乎使用 StreamList 作为 outputType 仍然首先获取所有行,然后才将其作为“流”(ResultSet)返回。
问题
难道我们不能只使用 PreparedStatement 的属性来真正“一次一行”地从我的数据库中流式传输数据,而不是一次获取所有数据并破坏我的 VM 内存吗?
谢谢。