大佬教程收集整理的这篇文章主要介绍了与Statement对象的setFetchSize方法混淆,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
默认情况下,完全检索结果集并将其存储在内存中。您可以通过设置stmt.setFetchSize(Integer.min_value);
(与只进,只读结果集结合)告诉驱动程序一次将结果流回一行。
因此,这非常特定于MysqL Connector / J驱动程序。
至于为什么关闭结果集需要花费很长时间,同样的文档也暗示了这一点:“必须先读取(或关闭)结果集中的所有行,然后才能对连接发出任何其他查询,否则将引发异常。“ 即关闭结果集将首先读取所有剩余的行,然后关闭结果集。而且由于现在读取行是逐行完成的,因此可能会花费很长时间。
看来(我没有测试它)有流播结果集可能会做你想要什么(不使用MysqL的限制条款)的替代,它涉及到配置性能usecursorFetch=true
和使用情况进行了说明这里。
我可以通过设置fetchSize
为来解决此Integer.min_value
问题,但是对此我有一些疑问
Integer.min_value
有效后,为什么呢?Integer.min_value
就是-2147483648
那么,为什么不给错误?resultset
在获取100或200条记录后我关闭了该表,这需要30-35秒的时间。resultset
。我想在此处添加更多内容,并已使用MySQL驱动程序对其进行了测试,并且可以接受,Integer.min_value
但是当我在SQL
Server中测试相同的代码时,它将给出错误The fetch size cAnnot be
negative.
;如果将其设置为10,则它可以工作,它也适用于Oracle。
以上是大佬教程为你收集整理的与Statement对象的setFetchSize方法混淆全部内容,希望文章能够帮你解决与Statement对象的setFetchSize方法混淆所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。