带有二进制数据的ResultSet

时间:2016-04-08 08:09:43

标签: java resultset

我有一个简单的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()上按块加载它?

1 个答案:

答案 0 :(得分:0)

只需查看Javadoc:

https://docs.oracle.com/javase/6/docs/api/java/sql/ResultSet.html

您正在逐行执行结果,逐行执行,逐列(通过索引或列名称)

(完成结果集后不要忘记释放资源)。

关于你的问题,作为程序员,将ResultSet视为与Stream相同的概念:“你不能对过去做任何事情,你不知道未来,你只能处理现在”