0

我想使用連接池的一個Web應用程序和MySQL dbms。 如果我想強制連接爲特定的方法將autocommit設置爲false,那麼這個連接(與autocommitt關閉)是否可能被其他請求使用?JDBC和Spring連接池

回答

0

是否有可能這個連接(與autocommitt關閉)被其他請求使用?

您應該始終檢索Connection在最窄的範圍內,這意味着,最好作爲您的方法的局部變量。然後,您可以通過撥打Connection#setAutocommit並使用false關閉自動提交,並在使用連接對象後,關閉,關閉。請注意,這隻會影響當前的交易,其他請求不會受到影響。

+0

但是,這種方式,如果在一個請求中,我有很多東西要處理數據庫,我會打開並關閉很多很多連接,這是個好主意嗎?我認爲連接池被用來避免這種情況。 – Tobia

+0

@Tobia我剛纔說你必須在最窄的範圍內打開一個'Connection'。這並不意味着您可以在幾個方法(通常作爲參數)上重複使用同一個打開的「Connection」。 –

+0

@Tobia使用連接池並不意味着你不應該關閉連接。你必須總是**關閉它,然後連接池將關閉* closed *物理連接,並將其置於SLEEP模式或其他內容而不是關閉它(但這是數據庫連接池的工作)。 –