gpt4 book ai didi

java - MySQL JDBC 中的服务器端游标支持

转载 作者:行者123 更新时间:2023-11-29 03:21:41 24 4
gpt4 key购买 nike

MySQL Connector-J 文档 ( here ) 提到了 JDBC 从 MySQL 数据库中检索结果的两种方式。一种是默认操作,其中整个结果集被加载到内存中并可以在代码中访问。第二种是逐行流式传输。

我想知道最新版本的 MySQL/MySQL JDBC 是否支持服务器端游标。具体来说,我想知道是否可以使用选项 useCursorFetch=TruedefaultFetchSize>0 来确保以一定大小的批处理从数据库中检索结果集(获取大小)。 MySQL 在其 C API ( here ) 中描述了服务器端游标,我想知道 MySQL JDBC 是否有类似的支持。

如果存在这种支持,这种操作的限制是什么?我知道将在服务器内存中创建一个临时表,从中获取结果。但是还有哪些其他需要注意的事项(例如表/行锁、对更新/插入的限制以及结果集/连接关闭)?

最佳答案

您的文档的最新版本linked to有这个注释:

By default, ResultSets are completely retrieved and stored in memory. [...] you can tell the driver to stream the results back one row at a time.

To enable this functionality, create a Statement instance in the following manner:

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

这听起来像您要找的东西。

关于java - MySQL JDBC 中的服务器端游标支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43457102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com