我执行以下查询:

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


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

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


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

最佳答案

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

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

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

09-30 15:26
查看更多