迭代JDBC Resultset对象

时间:2016-10-12 03:40:04

标签: java database jdbc

在Java程序中,我使用的是复杂查询(具有内部联接和子查询的select子句)。我正在迭代结果集并在文本文件中写入输出。

Select子句输出可以是400,000条记录。如果结果集有这么多记录会导致任何问题吗? ResultSet是否有一些记录/内存限制?

1 个答案:

答案 0 :(得分:2)

ResultSet本身未绑定。但是,您的JVM进程和网络功能存在局限性。如果您需要处理来自一个查询的大量记录,请尝试使用可用的ResultSet选项:

Statement stmt = con.createStatement("select * from dual", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
stmt.setFetchSize(1000);

基于您的数据库和/或驱动程序供应商,这些可以帮助您以更少的内存占用更快地处理请求。