尝试进行大查询时收到此错误。
java.lang.OutOfMemoryError: Java heap space
我搜索后发现,将 setAutoCommit(false)和 setFetchSize 方法应用于我准备好的语句可能有助于处理大查询。
但是,当我使用它时,我收到了此错误。
java.sql.SQLException: Illegal value for setFetchDirection().
什么是处理大型查询的正确且简便的方法?
使用setFetchSize的正确方法是什么?
最佳答案
假设您使用的是MySQL提供的Connector/J
驱动程序,我相信可以在this manual page(Connection::createStatement()
的注意参数1)中找到解决方案:
stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,
java.sql.ResultSet.CONCUR_READ_ONLY);
stmt.setFetchSize(Integer.MIN_VALUE);