2011-03-01 66 views
2

我想知道每个连接可以同时打开多少个语句或preparedstatements。我真的不明白,如果执行多个语句并检索多个结果集,它将如何工作。资源与细节的链接将会有所帮助。每个连接的JDBC Statement/PreparedStatement

感谢

回答

8

多条语句可以创建和相同的连接上使用,但只有一个结果集一次可以创建并在同一语句中使用。如果您使用相同的语句创建/打开另一个语句,则以前打开的任何结果集都将隐式关闭,导致任何尝试访问它的“ResultSet关闭”异常。

+6

据我所知,每个*语句*只能创建一个ResultSet,而不是每个连接。这由[Statement of description](http://docs.oracle.com/javase/6/docs/api/java/sql/Statement.html)支持:'默认情况下,每个Statement对象只有一个ResultSet对象可以同时开放。因此,如果一个ResultSet对象的读取与另一个ResultSet对象的读取交错,每个必须由不同的Statement对象生成。 – 2011-12-14 15:11:22