2011-03-02 68 views
1

當我在日誌中的錯誤嘗試更新數據庫時後:錯誤使用MySQL連接-J

值java.sql.SQLException:流 結果集空仍然有效。當任何 流結果集打開並且 在給定連接上使用時,可能會發出 語句。確保 在 嘗試更多查詢之前,在任何活動的 流結果集上調用了.close()。

我不明白null ResultSet是如何被激活的。它看起來像連接處於一個威脅狀態。

+0

似乎解決方案是將 'clobberStreamingResults'設置爲'true'進行連接。 – oshai 2011-10-28 00:05:54

回答

1

奇怪?不,看起來你沒有關閉你的JDBC資源。

您應該在創建它們的方法範圍內的finally塊中關閉Connection,Statement和ResultSet。

更新數據庫......結果集 開放和使用給定的連接上

您不能重複使用一個PreparedStatement,在一個點是一個SELECT和另一一個UPDATE之間沒有關閉的。

+0

我想要做的是重複使用相同的語句。當我執行更新時,我不會收回結果集,但是有時我不能再次在相同的準備好的語句上工作。 – oshai 2011-03-02 12:34:53

+0

你不應該這樣做。每次創建一個新的準備好的語句。非常糟糕的主意。 – duffymo 2011-03-02 12:40:54

+0

甚至java教程說我可以這樣做:'使用帶參數的SQL語句的優點是,您可以使用相同的語句,並在每次執行時使用不同的值。這個例子在下面的章節中。http://download.oracle.com/javase/tutorial/jdbc/basics/prepared.html爲什麼不呢? – oshai 2011-03-02 12:47:59