我看到了很多有关JDBC / MySQL的“最佳实践”指南,它们告诉我指定setFetchSize()。
但是,我不知道何时指定以及要指定什么(语句,结果集)。
Statement.setFetchSize() or PreparedStatement.setFetchSize()
ResultSet.setFetchSize()
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方式,并且比“正确”的方式更具可读性。 由于字符串是不可变的,所以为什么字符串错误是什么技术细节?什么时候进行身份检查更好,什么时候进行平等检查更好? 问题答案: 据我所知,检查对象身份是否相等。由于没有强制
问题内容: 我有一个将客户发送到另一个站点来处理付款的应用程序。客户之外的另一个站点在我们的服务器上调用一个页面,让我们知道付款的状态。被调用页面会检查付款应用程序提供的参数,并检查我们是否知道该交易。然后,它更新数据库以反映状态。这一切都无需与客户进行任何互动即可完成。 我个人选择将此功能实现为JSP,因为将文件拖放到文件系统中比编译和打包文件然后将条目添加到配置文件中要容易得多。 考虑到页面的