java - 如何从 JDBC 接收 Statement 的所有 ResultSet?

标签 java jdbc

我执行以下查询:

SELECT 1; CREATE TABLE ....; SELECT 2;

之后我尝试获取所有结果集。我为此使用以下代码:

while(!stmt.getMoreResults()) {
 stmt.getResultSet();
}

不幸的是我只得到了第一个结果集。请告诉我我做错了什么?

最佳答案

从技术上讲,您的第二个 CREATE TABLE 语句甚至不返回结果集(尽管 JDBC 可能会返回受 DML 影响的记录计数)。因此,如果您想捕获每个语句的概念返回值,那么您应该单独运行它们。

如果您的第二条语句实际上是SELECT,那么也许我们可以找到某种方法将查询组合在一起。

阅读this canonical answer了解如何处理确实有多个选择的情况。但是,请注意,并非所有数据库都支持此功能(例如 Oracle 不支持它)。和read here了解为什么单个 JDBC 调用中的多个查询甚至可能是一件坏事。

关于java - 如何从 JDBC 接收 Statement 的所有 ResultSet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54864393/

相关文章:

java - Jtextfield 以较小的状态开始

java - spring jdbc中如何使用数组

java - 我的 webdriver 代码在 FF 上运行良好,但在 IE11 上出现错误

java - 在 pom.xml 中更改为 java8

java.sql.SQLException : No value specified for parameter 4

java - 无法使用 JDBC 驱动程序连接到本地主机上的 MySQL

java - 为什么 BoneCP 在实例化后导致 Derby ShutdownException?

mysql - Logstash 没有从 MySQL 中读取新条目

java - 从文本文件中获取值,然后将它们放入没有重复项的列表中?

java - Spring Boot 应用程序在 Vaadin 13(流程 1)兼容模式下运行,而不是在 Vaadin 14 下运行