在executeBatch()之后使用CallableStatement检索ResultSet

2023-11-30

我需要多次调用存储过程并使用executeBatch()为了这。每次调用都应返回包含结果的表,但我无法访问此结果。接下来的代码工作正常:

callableStatement.setString(1, "foo");
callableStatement.setString(2, "bar");
callableStatement.execute();
resultSet = callableStatement.getResultSet();

但接下来的代码无法按预期工作:

for (String str : strings) {
    callableStatement.setString(1, str);
    callableStatement.setString(2, "bar");
    callableStatement.addBatch();
}
callableStatement.executeBatch();
resultSet = callableStatement.getResultSet(); // returns null

我已经尝试打电话了callableStatement.getUpdateCount() and callableStatement.getMoreResults()在提取 ResultSet 之前,但未成功。


这并不是真正的正确用法#executeBatch。批处理方法用于进行数据操作而不是获取结果数据。也就是说,您可以进行批量插入/更新/删除,但不能进行读取。的结果#executeBatch是 update-count,表示每批操作进行了多少次更改

目的是您可以通过减少类似数据操作操作的网络开销和数据库往返来提高性能。

您通常不会批量执行查询,因为不同的查询会导致不同的形状ResultSet(除非它们都用于具有相同列但不同查询的同一个表[但为什么不直接修改您的查询])。

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

在executeBatch()之后使用CallableStatement检索ResultSet 的相关文章

随机推荐

  • 拖放:通过使用 copyArrayItem(),拖放的项目不应从开始数组中删除,同时放置 Angular 8

    我有一个项目列表 我可以从其中拖动项目并将其放入另一个列表中 我在用着复制数组项 Angular 中的方法不从前一个数组中删除该项目 我开始拖动 该项目位于前一个数组中 该项目的占位符显示出来 开始拖动 占位符出现 我要离开之前的数组 占位
  • 以最快的方式使用数组索引按降序打印矩阵的排序元素

    这似乎是一个简单的问题 但我在快速完成此任务时遇到困难 假设我有一个矩阵 我想对该矩阵进行排序并按降序存储元素的索引 有没有快速的方法来做到这一点 现在 我正在提取最大值 存储结果 将其更改为 2 然后在 for 循环中提取下一个最大值 这
  • 分页在 DRF APIView 中不起作用

    我在用APIView用于获取和发布项目 我想使用 Django Rest Framework 为我的 API 实现分页 但它不起作用 我想每页显示 10 个项目 但是当我这样做时api v1 items page 1 我得到了所有的物品 如
  • 在编写插件时,如何排除 leiningen 引入的依赖项?

    我正在为 Leiningen 编写一个自定义插件 它将有助于部署用 Clojure 编写的 AWS Lambda 函数 我在用着aws java sdk lambda版本1 11 145它依赖于杰克逊2 6 x 具体来说2 6 5 IIRC
  • Azure 会自动更改数据库的定价层吗?

    我在 Azure 中创建了一个 Web 应用程序 DB 并将我的 ASP NET API 部署到其中 对于 SQL 数据库 我选择了 免费计划 现在 经过几天的 API 运行 仅编写了十几个数据集并进行了大约 30 个 API 调用 Azu
  • 从非静态方法构建静态委托

    我需要创建一个类的非静态方法的委托 复杂的是 在创建时我没有类的实例 只有它的类定义 在通话时 我手头确实有实例 因此我需要一种方法 构建一个 不完整 的委托给成员方法 缺少实例 从 1 开始调用委托 显式传递类的实例 这两种都可能吗 如何
  • 为什么一个页面不能包含多个服务器端表单标签?

    我想知道为什么asp net不允许这样做 很多页面包含超过 1 个表单 登录 注册表单 搜索 其他表单等等 所以我的猜测是 我可以将一种形式与精细的 oop asp net 对象相关联 而另一种形式与纯 html 相关联 并且我必须以两种完
  • Rails 3 将错误发送到电子邮件

    如何劫持 Rails 3 错误处理以通过电子邮件发送错误并提供完整的跟踪信息 Rails 异常通知程序插件https github com smartinez87 exception notification
  • Powerpoint VBA 宏复制对象的大小和位置并粘贴到另一个对象

    刚刚从 Windows 切换到 Mac 在 Windows 上的 ppt 中 我有一个插件 允许我复制对象的属性 包括大小和 或位置 并将其粘贴到另一个对象 有点像高级格式画家 可以切换您的属性我想复制 我不再有这个插件 但我非常想创建一个
  • SVG。使用 css 反转图像。将图像保留在同一位置

    这是一个代码笔示例https codepen io yury leonov pen rZxxQE 示例中的代码 example on click function e e target toggleClass reverse reverse
  • 为什么带有 __weak 限定符的变量保留一个对象?

    这是我的代码 extern void objc autoreleasePoolPrint int main int argc const char argv NSArray weak tmp nil autoreleasepool NSAr
  • E/RecyclerView:未连接适配器;跳过布局(使用 FRAGMENTS)

    我根据我找到的类似问题的答案修改了我的代码 但没有一个起作用 我正在使用 TabFragments 和 RecyclerViews 控制台显示错误 E RecyclerView 未连接适配器 跳过布局 四次 修改它时也给了我错误 java
  • 使用 cfprocparam 将数组或列表导入 Oracle

    我有一个值列表 想通过存储过程插入到表中 我想我会将一个数组传递给 Oracle 并循环访问该数组 但我不知道如何将数组传递给 Oracle 我会传递一个列表 但我不知道如何使用该列表将其转换为使用 PL SQL 的数组 我对 PL SQL
  • 使用 React hooks 在 REACTJS 中使用数组填充动态下拉列表的步骤

    请原谅我缺乏知识 因为我对 ReactJS 还很陌生 我正在尝试创建一个动态下拉系统 其中有国家下拉菜单和城市下拉菜单 并且我想从其中包含多个数组的 const 中获取数据 这是我拥有的 const 的示例 const countries
  • 如何为iphone 3.0编译pjsip

    我一直在尝试为 iphone 3 0 编译 pjsip 但一直无法做到 我尝试遵循 siphon 和 voiphone 使用 pjsip 的开源 iphone 项目 的指南 显然我不是唯一一个无法为 iphone 3 0 编译 pjsip
  • 如何建立自引用表

    在源表中 有两列 如下快照所示 那么对于目标表 它应该是这样的 DimLocationKey 是自动生成的代理键 如何在SSIS中实现自引用效果 我尝试了以下方法 但它不起作用 因为查找中没有匹配项 如果该列可为空 则您可以加载 locat
  • 在char数组中间插入字符

    我有一个填充了一些字符的字符数组 假设我的字符数组中有 HelloWorld 不是字符串 占用索引0到9 我想做的是在数组中间插入一个字符 然后将其余字符推到一边 为要插入的新字符腾出空间 因此 我可以使 char 数组中包含 Hello
  • 理解和实现 R 中分位数函数的数值积分

    我需要使用 R 计算下面的积分 我设法在 R 中使用分位数回归完成 q theta x 函数 包 quantreg matrix structure c 0 01 0 02 0 03 0 04 0 05 0 06 0 07 0 08 0 0
  • cakePHP 文件下载未找到或不可读

    我现在已经挣扎了一个小时试图解决这个问题 我用它来下载文件app uploads 目录 它说目录未找到或不可读 但我检查了它 它也存在使用的文件 file File filename 我想知道我在这里缺少什么 file this gt Fi
  • 在executeBatch()之后使用CallableStatement检索ResultSet

    我需要多次调用存储过程并使用executeBatch 为了这 每次调用都应返回包含结果的表 但我无法访问此结果 接下来的代码工作正常 callableStatement setString 1 foo callableStatement s