JDBC事務優化
摘要: 事務使得開發人員的工作變得簡單多了。通過在JDBC API和諸如Oracle9i的關系數據庫中使用事務功能,在更新多用戶應用程序時,你可以把數據遭破壞的可能性降到最低。然而,事務需要處理開銷,與免費事務應用程序(更容易被破壞)相比較,它會降低系統的性能。那么,當使用事務時,什么才是保持性能的最好方法?
閱讀全文
JDBC事務級別
摘要: TRANSACTION_NONE 說明不支持事務。
TRANSACTION_READ_UNCOMMITTED 說明在提交前一個事務可以看到另一個事務的變化。這樣臟讀、不可重復的讀和虛讀都是允許的。
TRANSACTION_READ_COMMITTED 說明讀取未提交的數據是不允許的。這個級別仍然允許不可重復的讀和虛讀產生。
TRANSACTION_REPEATABLE_READ 說明事務保證能夠再次讀取相同的數據而不會失敗,但虛讀仍然會出現。
TRANSACTION_SERIALIZABLE 是最高的事務級別,它防止臟讀、不可重復的讀和虛讀。
閱讀全文
Hibernate的事務和并發(ZT)
摘要: Hibernate的事務和并發控制很容易掌握。Hibernate直接使用JDBC連接和JTA資源,不添加任何附加鎖定 行為。我們強烈推薦你花點時間了解JDBC編程,ANSI SQL查詢語言和你使用 的數據庫系統的事務隔離規范。Hibernate只添加自動版本管理,而不會鎖 定內存中的對象,也不會改變數據庫事務的隔離級別。基本上,使用 Hibernate就好像直接使用JDBC(或者JTA/CMT)來訪問你的數據庫資源。
除了自動版本管理,針對行級悲觀鎖定,Hibernate也提供了輔助的API,它使用了 SELECT FOR UPDATE的SQL語法。本章后面會討論這個API。
我們從Configuration層、SessionFactory層, 和 Session層開始討論Hibernate的并行控制、數據庫事務和應用 程序的長事務。
閱讀全文