H2 DB 仅支持 1 个结果集?

问题描述 投票:0回答:1

我正在尝试使用 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)。

java database h2
1个回答
0
投票

根据您已经包含的文档,是的,您是正确的。您不能像这样在一个语句中执行两个查询。

幸运的是,解决方案很简单:只需将其分成两个语句,就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.