当前位置: 首页 > 面试题库 >

什么时候指定setFetchSize()?

巫经义
2023-03-14
问题内容

我看到了很多有关JDBC / MySQL的“最佳实践”指南,它们告诉我指定setFetchSize()。

但是,我不知道何时指定以及要指定什么(语句,结果集)。

Statement.setFetchSize() or PreparedStatement.setFetchSize() 
ResultSet.setFetchSize()
  1. 在这两个中,我应该指定什么?
  2. 从javadoc和oracle文档中,这是我对“何时”感到困惑的地方

Java文档

默认值由创建结果集的Statement对象设置。提取大小可以随时更改。

甲骨文文档

生成结果集后,对语句对象的提取大小所做的更改将对该结果集没有影响。

如果我错了,请纠正我。这是否意味着setFetchSize仅在执行查询之前有效?(因此,ResultSet上的setFetchSize是没有用的?但是碰巧“提取大小可能随时更改”?)


问题答案:

您应该从 结果集 的官方文档中阅读此页面。它说 __

默认情况下,完全检索结果集并将其存储在内存中。在大多数情况下,这是最有效的操作方式,而且由于MySQL网络协议的设计更易于实现。如果您正在使用具有大量行或较大值的ResultSet,并且无法在JVM中为所需的内存分配堆空间,则可以告诉驱动程序一次将结果流回一行。

stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,
                            java.sql.ResultSet.CONCUR_READ_ONLY);
stmt.setFetchSize(Integer.MIN_VALUE);

前向只读结果集与访存大小为Integer.MIN_VALUE的组合向驱动程序发出信号以逐行传输结果集。此后,将使用该语句创建的所有结果集逐行检索。

实际上,仅设置fetchSize对connector-j实现没有影响。



 类似资料:
  • 问题内容: 我习惯于进行Java编程,在编程时,您无需真正考虑指针。但是,此刻我正在用C ++编写程序。在创建具有其他类成员的类时,何时应该使用指针,何时不应该使用指针?例如,什么时候我想这样做: 与此相反: 问题答案: 首先避免指针。 在以下情况下使用它们: 您想使用Pimpl习惯用法或抽象工厂。 该实例实际上是由程序的其他部分管理的,而该类仅需要能够访问它。 您想推迟对象的构建(即,您想 在

  • 问题内容: 我的印象是,在URL属性(如hrefs)中使用JavaScript时,我只需要指定“协议”。这是唯一的“有用”上下文吗? 明智的: 愚蠢: 这是正确的吗?还是我需要注意一些晦涩的错误/用例? 问题答案: 事件处理程序上的伪协议将仅被忽略,您不需要它,JavaScript引擎将解释为LabelStatement。 标签只是为语句提供标识符,并允许您在程序的其他位置引用它。 恕我直言,此伪

  • 问题内容: 我来自没有显式指针的语言,因此我不太了解它们的存在重点(无双关语)。 问题是,在大多数情况下,我不知道为什么要传递指向函数的指针。我确实知道,当您传递一个指针时,到处都会对该变量进行修改,但这有什么意义呢?为什么不修改值并返回结果呢? 例如,是一个函数,该函数接收和作为参数。我读过接口实际上是指针(是吗?),但是我没有得到的是为什么? 为什么我要指向作家?我没有修改它,只是在写它。而且

  • 本文向大家介绍什么时候用delegate,什么时候用Notification?相关面试题,主要包含被问及什么时候用delegate,什么时候用Notification?时的应答技巧和注意事项,需要的朋友参考一下 答:delegate针对one-to-one关系,并且reciever可以返回值 给sender,notification 可以针对one-to-one/many/none,recieve

  • 问题内容: 奇怪的是: 似乎或多或少被定义为。通过这种方式很容易产生错误: 一些fname意外地以else块结尾。修复很简单,我们应该改用它,但是从表面上看,这似乎是一种不错的pythonic方式,并且比“正确”的方式更具可读性。 由于字符串是不可变的,所以为什么字符串错误是什么技术细节?什么时候进行身份检查更好,什么时候进行平等检查更好? 问题答案: 据我所知,检查对象身份是否相等。由于没有强制

  • 我创建了一个类(正如书中所说)来保存从键盘输入的一个人的姓名和姓氏,然后还有另一个类,它将一个人的国家代码、区号和号码封装为字符串 Person将用作Hashmap中的键 Class封装了和。许多对象组成了一个表示电话簿的HashMap。 实现了