如何使用JDBC在文本文件中编写大量数据而不会耗尽内存

2 java jdbc recordset

我正在尝试使用JDBC从数据库创建转储文件.该文件应该是大约300 MB的大小,包含十列中的1.2到1.5百万条记录,但我的内存耗尽大约25万.

我的问题是java将整个记录集存储在内存中吗?我已经将记录集设置为只能向前读取,希望已经转储的记录将从内存中清除,但似乎并非如此.

任何帮助将不胜感激.

Oll*_*lly 7

你应该setFetchSizeStatement对象上使用.以下示例将仅从以下位置一次获取1000条记录ResultSet:

Connection con = DriverManager.getConnection("jdbc:my_subprotocol:my_subname");
Statement stmt = con.createStatement();
stmt.setFetchSize(1000);
ResultSet rs = stmt.executeQuery("SELECT * FROM your_table");
Run Code Online (Sandbox Code Playgroud)

这是Javadoc:

http://java.sun.com/javase/6/docs/api/java/sql/Statement.html#setFetchSize(int)