如何实现;“数据流”;在Java-数据库交互中?
背景:如何实现;“数据流”;在Java-数据库交互中?,java,database,Java,Database,背景: 我有一个基于java的应用程序,比如说AppA 它查询数据库,比如说DataD 它处理这些数据,发挥一些魔力,并将其传递给另一个应用程序,比如AppB 问题: DataD中的数据量相当大 我的AppA并没有真正具备一次性处理所有数据的能力 我的AppB对一次性获取所有数据也不感兴趣 解决方案: 我想从DataD查询数据,但每次只能查询10000个(可配置的)数据 我将在AppA中处理该批,将其传递到AppB,然后对DataD执行另一个查询 我必须告诉DataD,我已经读了多少条记录,并要
听起来有点复杂,我建议你尽量把它简单化
我会让AppA执行查询,并在得到每一行时对其进行处理,然后将派生数据写入AppB正在侦听的套接字。除非您知道这会导致性能问题,否则我不会让它变得更复杂。恐怕这行不通。正如我所说,我的AppA不能一次性处理所有数据。它只是没有那么多的记忆;AppA只需
处理每一行即可
我假设AppA至少可以处理一整行。是的。它绝对可以一次处理一行。事实上,即使是10000也没问题。但我想我没有抓住重点。据我所知,如果我要创建一个到DataD的JDBC连接并运行一个查询,我将一次性获得内存中的所有记录。我不会一次排一排。我遗漏了什么吗?您可以控制JDBC的预取大小,但它通常是合理的,并且非常小,例如10。啊,听起来不错。让我明天检查一下,我会回来报告的。