привет товарищам по Java.
У меня тут небольшая проблема. У меня есть код, который получает набор результатов из базы данных Oracle, печатает каждую строку в файл, а затем получает следующую строку - и продолжается до конца набора результатов.
Только это не то, что происходит. Что происходит, так это то, что он получает набор результатов, начинает перебирать строки, печатая в файл, как только идет, до тех пор, пока не закончится память - утверждая, что ему нужно больше места в куче Java.
Приложение в настоящее время работает с 2 г памяти в куче, и код разбивается примерно на 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();