在Java中完成作業後,需要從數據庫斷開連接嗎?如果沒有斷開連接,是否會導致內存泄漏?使用Java時,我是否必須顯式斷開與數據庫的連接?
3
A
回答
4
你應該提供更多的細節,比如你正在使用哪個框架或者什麼。
無論如何,你使用JDBC?如果是這樣,您應該使用它們各自的close()
方法來關閉以下對象:Statement,ResultSet和Connection。
6
您必須始終關閉您的所有連接,語句和結果集。
如果沒有,更有可能你不能從池中獲得比內存泄漏更多的新連接。
1
我沒有一個源代碼,但我相信(如果我記得沒錯,已經有一段時間了,因爲我已經觸及JDBC),它依賴於JDBC驅動程序實現。您應該始終關閉連接並清理乾淨,因爲並非所有的JDBC驅動程序都爲您完成(儘管有些可能)。
這回到我喜歡遵循的規則 - 如果我創建或打開某些東西,我負責刪除或關閉它。
3
假設您使用JDBC,答案是肯定的。如果您沒有關閉連接,那麼JDBC驅動程序可能會嘗試在finallizer中關閉它,但這可能會導致連接長時間處於打開狀態,從而導致資源問題(數據庫連接的數量允許在一個時間是有限的)。通常,JDBC編程是使用數據庫池完成的,而不關閉連接將意味着池將很快耗盡可用連接。
某些應用程序服務器(例如JBoss)會檢測連接何時未關閉,如果正在管理事務,則會關閉它,但不應該依賴於此。
當然一些JDBC驅動程序不是純Java驅動程序,在這一點上內存泄漏成爲一種非常現實的可能性。
-2
是和是是
相關問題
- 1. 多線程時,我是否必須鎖定數據庫連接?
- 2. 我是否必須連接到每個查詢的數據庫?
- 3. 僅在數據庫中插入時,是否必須使用斷開連接的方法?
- 4. 使用HTTPService時,您是否必須斷開連接或以某種方式關閉http連接
- 5. 斷開與數據庫的連接
- 6. 何時必須關閉數據庫連接? (Java)
- 7. 連接必須打開VB
- 8. 數據庫連接在與數據庫相同的PC上開發時始終斷開連接
- 9. OracleDataAdapter.Fill「連接必須是打開」錯誤
- 10. 使用Parse Server時,我是否必須打開終端?
- 11. 與數據庫斷開連接時意外停止
- 12. 使用斷開連接的數據
- 13. php mysql斷開連接是否真的斷開連接?
- 14. 斷開與MS Access數據庫的所有開放連接
- 15. 當我有svn @ sourceforge時,是否必須使用maven倉庫?
- 16. 我必須使用連接表嗎? [MYSQL]
- 17. 關於時間軸的問題,用戶是否必須連接?
- 18. 使用Mapkit時,我們是否必須顯示Google條款的鏈接?
- 19. 何時必須關閉mysqli(數據庫)連接?
- 20. 如果使用連接表,關係是否必須是HABTM?
- 21. 我是否必須創建一個新的數據庫?
- 22. OOP數據庫連接/斷開類
- 23. 我必須使用java查詢MS SQL數據庫
- 24. 我是否必須重新開始?
- 25. 是否必須關閉使用NSURLSessionDataTask創建的連接
- 26. 我是否必須使用onPause/onStart/onDestroy
- 27. 我是否必須使用UNION insted JOIN?
- 28. 如何使用java檢查sqlite中是否存在與數據庫的連接?
- 29. HttpUrlConnection是否必須設置爲使用公共WiFi連接?
- 30. ODBC連接是否必須使用明文密碼?