我必须确认我们可以一次执行多个 select 语句并获得多个结果集。请给我一些想法。
我必须在一个语句中执行两个选择查询:-
String sql="select * form test;
select * from test where empid=1;"
我期待像这样运行:-
statement.execute(sql);
谢谢
在我看来,JDBC 不允许一次执行多个语句。JDBC 规范和 API 文档中使用的语言表明预期是一次Statement
执行是一条语句,而不是多条语句(例如,它使用“一条 SQL 语句”,在阅读 SQL 规范时意味着单个 SELECT、INSERT 等) . 然而,它从未明确声明它是不允许的。
一些驱动程序确实支持在一次执行中执行多个语句,但这通常必须使用连接属性显式启用。此外,一些数据库支持在不显式定义存储过程的情况下执行存储过程代码块(在这种情况下,该块被视为语句)。
我不相信标准 JDBC 支持这一点。当然,该ResultSet
界面面向“多行,一次一行” - 但不是“多组结果”。
但是,这并不意味着它对您的特定数据库不可行 - 您的数据库可能有一个驱动程序扩展了 JDBC 以允许它。如果您指定您正在使用的数据库和驱动程序,我们可以更轻松地进行验证。
使用这些选择语句集创建一个存储过程并使用Statement.getMoreResults()检查您是否有更多 ResultSet 并使用 Statement.getResultSet()获取下一个 ResultSet
这里给出一个例子