我正在尝试使用 h2 db 从 1 个查询返回 2 个表,但是我只得到 1 个表作为结果
这是我的代码:
try {
Connection connection = DriverManager.getConnection(h2_conn);
Statement statement = connection.createStatement();
// Execute a SQL query that returns multiple result sets
String sql = "select * from `test1234` limit 1;" +
"select * from `test1234` limit 2;";
boolean hasMoreResults = statement.execute(sql);
// Process each result set
int resultSetNumber = 1;
do {
ResultSet resultSet = statement.getResultSet();
while (resultSet.next()) {
// Process the current result set
System.out.println("Result Set " + resultSetNumber);
System.out.println(resultSet.getString(1));
System.out.println(resultSet.getString(2));
}
resultSetNumber++;
hasMoreResults = statement.getMoreResults();
} while (hasMoreResults);
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
这意味着不可能在单个查询中获得 2 个表结果?
关于文档:
http://www.h2database.com/javadoc/org/h2/jdbc/JdbcStatement.html#getMoreResults--
移至下一个结果集 - 但始终只有一个结果集。此调用还会关闭当前结果集(如果有)。如果存在下一个结果集,则返回 true(这意味着 - 它始终返回 false)。
根据您已经包含的文档,是的,您是正确的。您不能像这样在一个语句中执行两个查询。
幸运的是,解决方案很简单:只需将其分成两个语句,就可以了。