java.lang.OutOfMemoryError:执行数百万次查询时出现Java堆空间
发布时间:2020-12-15 05:06:57 所属栏目:Java 来源:网络整理
导读:在我的应用程序中,我需要对 MySQL数据库执行数百万次查询.代码如下: for (int i=0; i num_rows ; i++) { String query2="select id from mytable where x='"+ y.get(i) "'"; Statement stmt2 = Con0.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet
在我的应用程序中,我需要对
MySQL数据库执行数百万次查询.代码如下:
for (int i=0; i< num_rows ; i++) { String query2="select id from mytable where x='"+ y.get(i) "'"; Statement stmt2 = Con0.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY); ResultSet rs2 = stmt2.executeQuery(query2); ... // process result in rs2 rs2.close(); } 其中num_rows约为200万.在600k循环之后,java报告错误并退出:
我的代码有什么问题?我该如何避免这样的错误? 提前致谢! 解决方法
声明在这里不是一个好方法.请尝试以下代码:
PreparedStatement pre = Con0.prepareStatement("select id from mytable where x=?"); for (int i=0; i< num_rows ; i++) { pre.setString(1,y.get(i)); ResultSet rs2 = pre.executeQuery(); ... // process result in rs2 rs2.close(); pre.clearParameters(); } pre.close(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |