select语句大约查询出来6百万的id,ResultSet貌似都放到内存里了。。导致内存不足
我设置了fetchSize,也不行。求高手指教
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
- Java code
String select = "select itemid from " + ITEMS + " where itemid>91592607 "; String update = "update " + ITEMS + " set view=? where itemid=?"; int[] iids = new int[5]; try { pstmt = conn.prepareStatement(select); pstmt2 = conn.prepareStatement(update); rs = pstmt.executeQuery();//报错行at GetUserData.main(GetUserData.java:52) rs.setFetchSize(1000);
------解决方案--------------------
那你就不要一次全查出来 分批查...
------解决方案--------------------
一下取出来这么多干什么
------解决方案--------------------
你用的数据库如果是MsSQL或者是Sybase,JDBC驱动可以换成jtds试试,jtds用到了游标策略。
------解决方案--------------------
6百万跳记录就把你堆空间挤爆了, 加大java使用的内存。 不过一次性趣那么多,不建议你这么做。 肯定是有别的办法的