我执行以下查询:
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/