在 Java 中检查结果集的有效方法

2023-12-04

我正在运行一个 select 命令,该命令返回 1,000,000 行,迭代 ResultSet。下面的代码需要 5 分钟才能执行。

有没有更快的方法来迭代 ResultSet?

conn = getDbConnection();
Statement createStatement = conn.createStatement();
ResultSet rs = createStatement.executeQuery("Select * from myTable");
while (rs.next())
{
    //do nothing
}

java中有没有一种方法可以在检查结果集中的所有记录时提高效率。

Thanks


您可以使用setFetchSize(rows)优化获取大小,一次从数据库中获取指定数量的行。

conn = getDbConnection();
Statement createStatement = conn.createStatement();
createStatement.setFetchSize(1000);
ResultSet rs = createStatement.executeQuery(“Select * from myTable”);
while (rs.next())
{
//do nothing        
}

请注意, fetchSize 只是一个提示DB它可能会忽略该值。只有测试才能揭示其是否最佳。

另外,就你的情况来说,改变可能会更好Scrollable声明的属性,因为您可能无法一次处理所有记录。选择哪个可滚动选项取决于您是否希望在迭代时看到其他人的更改。

//TYPE_FORWARD_ONLY 
//      The constant indicating the type for a ResultSet object 
//    whose cursor may move only forward.
conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, 
                           ResultSet.CONCUR_READ_ONLY); 

Or

//TYPE_SCROLL_INSENSITIVE
//      The constant indicating the type for a ResultSet object that is 
//    scrollable but generally not sensitive to changes made by others.    
conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 
                           ResultSet.CONCUR_READ_ONLY); 

Or

//TYPE_SCROLL_SENSITIVE
//      The constant indicating the type for a ResultSet object that is 
//    scrollable and generally sensitive to changes made by others.
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, 
                           ResultSet.CONCUR_READ_ONLY); 

See JDBC API 指南欲了解更多详情

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java 中检查结果集的有效方法 的相关文章

  • Gradle 构建错误:无法从 https://repo1.maven.org/maven2/io/fabric/tools/gradle/maven-metadata.xml 加载 Maven 元数据

    我在 Android studio 中遇到 gradle 构建错误 如下所示 Error A problem occurred configuring project MyApp Could not resolve all dependen
  • 按键时关闭 ModalWindow

    我希望能够在用户按下某个键 在我的例子中是 ESC 时关闭 ModalWindow 我有一个用于按键的 Javascript 侦听器 它调用取消按钮 ID 的单击事件 jQuery modalWindowInfo closeButtonId
  • Java中有没有一种方法可以通过名称实例化一个类?

    我正在寻找问题 从字符串名称实例化一个类 https stackoverflow com questions 9854900 instantiate an class from its string name它描述了如何在有名称的情况下实例
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • 序列的排列?

    我有具体数量的数字 现在我想以某种方式显示这个序列的所有可能的排列 例如 如果数字数量为3 我想显示 0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 1 0 0 1 0 1 1 0
  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • 如何在 Spring 中禁用使用 @Component 注释创建 bean?

    我的项目中有一些用于重构逻辑的通用接口 它看起来大约是这样的 public interface RefactorAwareEntryPoint default boolean doRefactor if EventLogService wa
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 在 Jar 文件中运行 ANT build.xml 文件

    我需要使用存储在 jar 文件中的 build xml 文件运行 ANT 构建 该 jar 文件在类路径中可用 是否可以在不分解 jar 文件并将 build xml 保存到本地目录的情况下做到这一点 如果是的话我该怎么办呢 Update
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • Hibernate 的 PersistentSet 不使用 hashCode/equals 的自定义实现

    所以我有一本实体书 public class Book private String id private String name private String description private Image coverImage pr
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供

随机推荐

  • 在 D3.js 中添加带有嵌套条目的属性

    我已使用 d3 nest 进行按行值分组 代码是这样的 function createNestingFunction propertyName return function d return d propertyName var leve
  • 使用带参数的函数时 ebp 和 esp 在堆栈中的行为

    我想了解更多关于堆栈的知识 特别是 当调用带有参数的函数时会发生什么 为此 我编写了以下代码 include
  • 仅保留 SQL 数据库中的前 50 条记录并删除其余记录

    我有一个分数表 由 2 个字段组成 name and 高分 像这样的东西 name score John 2450 Alice 2420 etc 我需要delete直到前 50 名分数为止的所有行 是否可以不创建另一个临时表 请尝试这个 d
  • 理解汇编语言的 mul 和 imul 指令的问题

    我正在学习80386保罗 考特的 PC 组装 mul source 如果操作数是字节大小 则将其乘以 AL 中的字节 注册和结果存储在 AX的16位 fine 如果源是 16 位 则将其乘以 AX 中的字和 32 位结果存储在 DX AX
  • IDispose 对象是否可以没有可用的 Dispose 方法

    我在用文件助手在一个项目和班级中MultiRecordEngine public sealed class MultiRecordEngine EventEngineBase IEnumerable IDisposable 这个类实现了ID
  • Node.js / Mongodb 插入回调返回未定义

    当我运行下面的简单代码来插入新文档时 collectionUsers insert name john function err records if err throw err console log Id of new document
  • 如何管理多个开发人员的合并更新? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我与一个中型开发团队合作 他们都致力于同一个产品 开发人员编写代码来解决功能或错误修复问题 然后将其签入我们的主要开发分支 在 Subversion 中 一旦 QA 人员对票证进
  • frida hook 原生非导出函数

    我出于学习目的逆向这个 Android 应用程序 该应用程序在本机层上实现了所有有趣的功能 因此我在 Arm Android Studio 映像上运行该应用程序并逆向共享库 因此该应用程序正在使用 ghidra 进行调用我设法将共享对象反编
  • 如何使此正则表达式替换适用于所有字符,而不仅仅是第一个字符?

    我正在尝试用连字符替换字符串中的所有空格 我试过这个 h3Text replace s 但它仅替换空格的第一个实例 而不替换其后的空格 使它替换的正则表达式是什么all空位 try h3Text replace s g the g标志是这里
  • 如何在Python matplotlib中的LaTeXed下标中包含字符串链[重复]

    这个问题在这里已经有答案了 我想使用 LaTeX 在 matplotlib 图的图例中编写一个带有下标的变量 解决此类问题的一种可能的代码可能是 import numpy as np import matplotlib pyplot as
  • 使用 JSON 每 x 秒更新传单标记位置

    我的地图上有一个标记 代表国际空间站的当前位置 从http open notify api herokuapp com iss now json callback 我还试图让它每 1 秒移动一次 以跟随空间站的轨道 这是我现在的代码 get
  • 在变量周围添加引号

    我需要从 SQL 导出数据并导入 SAS 地址字段的字符串中间有 我尝试使用 CSV 和制表符分隔 但每次 SAS 都会由于 而打破地址字段 我尝试使用另一个问题中的代码将逗号替换为空格 但它不起作用 update temp2 set ST
  • WinForm 应用程序 UI 在长时间运行的操作期间挂起

    我有一个 Windows 窗体应用程序 我需要使用一个 for 循环 其中有大量远程调用 大约 2000 3000 个调用 在执行 for 循环时 我失去了对表单和表单控件的控制 因为它变成了一个大进程 有时它显示 未响应 但如果我等待很长
  • C语言中如何使用void指针?

    以下是我无法理解如何完成的几个函数声明 我扫描了网络以了解 void 指针是什么 并且我知道它必须转换为有用的东西 因为它只指向某个内存块 但我不知道这如何帮助完成这些声明 type of comparison function that
  • Java SAXParser 解析无效的 xml [重复]

    这个问题在这里已经有答案了 我正在尝试解析一些无效的 xml 因为属性没有用引号引起来 有什么方法可以解决这个问题吗 下面是一个简单的例子 以及java代码 XML
  • 将所有标准输入读取到 Java 字节数组中

    现代Java 仅使用标准库 最简单的阅读方式是什么all of标准输入直到 EOF 转换为字节数组 最好不必自己提供该数组 标准输入数据是二进制数据 不是来自文件 IE 像鲁比的东西 foo stdin read 我能想到的唯一的部分解决方
  • 是否可以自动选择正确的客户端证书?

    我已经使用 SSL 客户端证书配置了 Apache httpd 网站 以便只有在 Web 浏览器中安装了正确证书的用户才能访问该网站 如果仅安装了一个客户端证书 Web 浏览器将自动选择它 这不是默认设置 但可以在设置对话框中的某处进行配置
  • Invoke-WebRequest,带参数的 POST

    我正在尝试 POST 到 uri 并发送参数username me Invoke WebRequest Uri http example com foobar Method POST 如何使用 POST 方法传递参数 将参数放入哈希表中并像
  • 使用C#获取SMTP服务器证书

    如何使用 C 连接到支持 STARTTLS 的 SMTP 服务器并获取其 SSL 证书 我知道可以使用 openssl 来完成类似的事情 openssl s client starttls smtp crlf connect 192 168
  • 在 Java 中检查结果集的有效方法

    我正在运行一个 select 命令 该命令返回 1 000 000 行 迭代 ResultSet 下面的代码需要 5 分钟才能执行 有没有更快的方法来迭代 ResultSet conn getDbConnection Statement c