在java中执行Multiple Select语句

时间:2013-02-28 07:13:04

标签: java jdbc

我必须确认我们可以一次执行多个select语句并获得多个结果集。请告诉我这样做的一些想法。

我必须在一个语句中执行两个select查询: -

String sql="select * form test;  
select * from test where empid=1;" 

我希望像这样跑: -

statement.execute(sql);

感谢

3 个答案:

答案 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等)。然而,它从未明确表明不允许这样做。

某些驱动程序确实支持在一次执行中执行多个语句,但通常必须使用连接属性显式启用。还有一些数据库支持执行存储过程代码块而不显式定义存储过程(在这种情况下,块被认为是语句)。