我在尝试进行大查询时收到此错误。
java.lang.OutOfMemoryError: Java heap space
我搜索过并发现申请设置自动提交(假) and 设置获取大小我准备好的语句的方法可能有助于处理大查询。
然而,当我使用它时,我收到了这个错误。
java.sql.SQLException: Illegal value for setFetchDirection().
处理大型查询的正确且简单的方法是什么?
使用 setFetchSize 的正确方法是什么?
假设您正在使用 MySQL 提供的 MySQL Connector/J 驱动程序,我相信解决方案可以在本手册页(注意参数1Connection::createStatement()
):
如果您正在使用具有大量行或
较大的值,并且无法在 JVM 中分配堆空间
需要内存,您可以告诉驱动程序将结果流式返回
一次一行。
要启用此功能,请按以下方式创建 Statement 实例:
stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,
java.sql.ResultSet.CONCUR_READ_ONLY);
stmt.setFetchSize(Integer.MIN_VALUE);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)