2011-12-28 55 views
0

我正在使用jndi來訪問dbcp數據源。我應該將JDBC連接綁定到servlet線程嗎?

在每次調用static_dataSource.getConnection()返回新連接的一個servlet請求的範圍內。

在休眠中有一個功能getCurrentSession()。據我瞭解綁定到當前線程的這個函數返回連接。我應該將jdbc連接綁定到線程嗎?

我的目標是在一個事務的範圍內調用複雜的業務邏輯,該事務包含許多DAO調用,每個http請求。就像在Spring中一樣,我可以用@Transactional註釋整個服務類。

回答

1

我建議你不要將JDBC連接綁定到線程。使用連接池並儘可能以最短時間掛接連接:從池中獲取,執行操作,關閉連接,返回池。

您的持久性代碼應該完全獨立於Web層。您應該能夠獨立於Web層測試和使用它。任何你將兩者聯繫在一起的做法都會降低持久層的有效性。

+0

但我想要的是在包含許多DAO調用的一個事務的範圍中調用複雜的業務邏輯。就像在Spring中一樣,我可以用@Transactional註釋整個服務類。 – 2011-12-28 22:02:55

+0

那你爲什麼不用Spring呢?這些想法應該通過翻譯 - 讓擁有用例/事務的對象和業務邏輯所需的所有DAO獲取連接並使其可供所有需要它的DAO使用。然後關閉它並將其返回到游泳池。每個線程的一個連接不會很好地擴展。 – duffymo 2011-12-28 22:31:27

相關問題