我有一个简单的Java 6代码:
Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost/db?user=u&password=p");
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery("SELECT * FROM "+tabela);
while(res.next()){
byte[] fileBytes = res.getBytes(fileColumnIndex);
fos.write(fileBytes);
}
所以我的问题是,ResultSet是一次将所有数据加载到某个本地内存,还是在每个res.next()上按块加载?
只需检查Javadoc:
https://docs.oracle.com/javase/6/docs/api/java/sql/ResultSet.html
您正在逐行、逐列(按索引或列名)中移动执行的SQL查询的结果
(完成结果集后,不要忘记释放资源)。
关于你的问题,作为一名程序员,将ResultSet视为流的相同概念:"你不能对过去做任何事情,你不知道未来,你只能处理现在"