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