【发布时间】:2010-03-16 03:22:11
【问题描述】:
你好 Java 开发人员。
我在这里遇到了一些问题。我有从 oracle 数据库获取结果集的代码,将每一行打印到文件中,然后获取下一行 - 并一直持续到结果集的末尾。
只有这不是发生的事情。发生的情况是它获取结果集,开始遍历行,在运行过程中打印到文件,直到内存不足 - 声称它需要 Java 堆上的更多空间。
应用程序当前在堆上使用 2g 内存运行,代码在大约第 150000 行处中断。
我正在使用 jodbc6.jar 和 java 6
这是我的代码在做什么的一个想法:
Connection conn = DriverManager.getConnection(url,"name","pwd");
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery(strSql);
String strVar_1 = null;
long lCount = 0;
while(rset.next()){
lCount++;
if (lCount % 100000 == 0){
System.out.println(lCount + " rows completed");
}
strVar_1 = rset.getString("StringID"); /// breaks here!!!!!!!!!
if (strVar_1 == null){
strVar_1 = "";
}
if (!strQuery_1.equals("")){
out.write(strVar_1 + "\n");
}
}
out.close();
【问题讨论】: