您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

与Statement对象的setFetchSize方法混淆

与Statement对象的setFetchSize方法混淆

MysqL驱动程序将Integer.MIN_VALUE用作切换到流式结果集模式的信号。它不用作值。请参阅“结果集”下的文档。综上所述:

认情况下,完全检索结果集并将其存储在内存中。您可以通过设置stmt.setFetchSize(Integer.MIN_VALUE);(与只进,只读结果集结合)告诉驱动程序一次将结果流回一行。

因此,这非常特定于MysqL Connector / J驱动程序。

至于为什么关闭结果集需要花费很长时间,同样的文档也暗示了这一点:“必须先读取(或关闭)结果集中的所有行,然后才能对连接发出任何其他查询,否则将引发异常。“ 即关闭结果集将首先读取所有剩余的行,然后关闭结果集。而且由于现在读取行是逐行完成的,因此可能会花费很长时间。

看来(我没有测试它)有流播结果集可能会做你想要什么(不使用MysqL的限制条款)的替代,它涉及到配置性能useCursorFetch=true和使用情况进行了说明这里

其他 2022/1/1 18:29:46 有506人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶