当我在日志中的错误尝试更新数据库时后:错误使用MySQL连接-J
值java.sql.SQLException:流 结果集空仍然有效。当任何 流结果集打开并且 在给定连接上使用时,可能会发出 语句。确保 在 尝试更多查询之前,在任何活动的 流结果集上调用了.close()。
我不明白null ResultSet是如何被激活的。它看起来像连接处于一个威胁状态。
当我在日志中的错误尝试更新数据库时后:错误使用MySQL连接-J
值java.sql.SQLException:流 结果集空仍然有效。当任何 流结果集打开并且 在给定连接上使用时,可能会发出 语句。确保 在 尝试更多查询之前,在任何活动的 流结果集上调用了.close()。
我不明白null ResultSet是如何被激活的。它看起来像连接处于一个威胁状态。
奇怪?不,看起来你没有关闭你的JDBC资源。
您应该在创建它们的方法范围内的finally块中关闭Connection,Statement和ResultSet。
更新数据库......结果集 开放和使用给定的连接上
您不能重复使用一个PreparedStatement,在一个点是一个SELECT和另一一个UPDATE之间没有关闭的。
我想要做的是重复使用相同的语句。当我执行更新时,我不会收回结果集,但是有时我不能再次在相同的准备好的语句上工作。 – oshai 2011-03-02 12:34:53
你不应该这样做。每次创建一个新的准备好的语句。非常糟糕的主意。 – duffymo 2011-03-02 12:40:54
甚至java教程说我可以这样做:'使用带参数的SQL语句的优点是,您可以使用相同的语句,并在每次执行时使用不同的值。这个例子在下面的章节中。http://download.oracle.com/javase/tutorial/jdbc/basics/prepared.html为什么不呢? – oshai 2011-03-02 12:47:59
似乎解决方案是将 'clobberStreamingResults'设置为'true'进行连接。 – oshai 2011-10-28 00:05:54