当前位置: 代码迷 >> java >> 如何从JDBC的Statement中接收所有ResultSet?
  详细解决方案

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

热度:62   发布时间:2023-07-25 19:10:51.0

我执行以下查询:

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

之后,我尝试获取所有resultSets。 我为此使用以下代码:

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

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

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

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

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

您是否要说Java不能无障碍地完成.Net的工作? 就这么简单吗? 不管以批处理方式运行的脚本中的选择之间是哪种伪语句,C#代码中的bool IDataReader.NextResult()都会可靠地返回下一个结果,跳过我们正在尝试调试的Netezza的下一个伪语句。 多年来,所有支持批处理调用的平台都做同样的事情,以防万一我们不得不处理它们。

  相关解决方案