我执行以下查询:
SELECT 1; CREATE TABLE ....; SELECT 2;
之后,我尝试获取所有resultSets。我为此使用以下代码:
while(!stmt.getMoreResults()) {
stmt.getResultSet();
}
不幸的是,我得到了第一个结果集。请告诉我我做错了什么?
最佳答案
从技术上讲,您的第二个CREATE TABLE
语句甚至不会返回结果集(尽管JDBC可能会返回受DML影响的记录的计数)。因此,如果要捕获每个语句的概念性返回值,则应单独运行它们。
如果您的第二条语句实际上是SELECT
,那么也许我们可以找到某种方式将查询组合在一起。
阅读this canonical answer,了解如何处理您确实有多个选择的情况。但是请注意,并非所有数据库都支持此功能(例如,Oracle不支持此功能)。然后read here来查看为什么在单个JDBC调用中进行多个查询甚至可能是一件坏事。