更新時間:2023-11-06 來源:黑馬程序員 瀏覽量:
IT就到黑馬程序員.gif)
在Hibernate中,可以通過代碼操作管理事務(wù),例如Transaction tx = session.begin Transaction();表示開啟一個事務(wù);進(jìn)行持久化操作后,執(zhí)行tx.commit();操作提交事務(wù);如果在操作的過程中出現(xiàn)了異常的情況,則執(zhí)行tx.rollback();操作回滾事務(wù)。
除了使用代碼對事務(wù)的開啟、提交和回滾進(jìn)行操作以外,還可以在Hibernate的配置文件中對事務(wù)進(jìn)行配置。在配置文件中,可以選擇使用本地事務(wù)或者全局事務(wù),還可以設(shè)置事務(wù)的隔離級別。其具體的配置方式如下所示:
<!--使用本地事務(wù)--> <property name="hibernate.currrent_session_context_class">thread</property> <!--使用全局事務(wù)--> <property name="hibernate.currrent_session_context_class">jta</property> <!--設(shè)置事務(wù)隔離級別--> <property name="hibernate.connection_isolation">2</property>
在上述配置代碼中,使用hibernate.current_session_context_calss參數(shù)配置本地事務(wù)和全局事務(wù)。其中,本地事務(wù)是指對一個數(shù)據(jù)庫進(jìn)行的操作,即只針對一個事務(wù)性資源進(jìn)行操作;而全局事務(wù)是指由應(yīng)用服務(wù)器管理的事務(wù),它需要使用JTA(Java Transaction API),可以用于多個事務(wù)性資源(跨多個數(shù)據(jù)庫)。由于JTA的API非常笨重,一般只在應(yīng)用服務(wù)器的環(huán)境中使用,并且全局事務(wù)的使用限制了應(yīng)用代碼的重用性,所以Hibernate的事務(wù)管理通常會選擇使用本地事務(wù)。
的配置.jpg)
在上述配置中,還使用了hibernate.connection.isolation參數(shù)配置事務(wù)的隔離級別,并將事務(wù)的隔離級別設(shè)置為2,表示讀已提交。在Hibernate中,使用數(shù)字表示不同的隔離級別,它與數(shù)據(jù)庫中的隔離級別相同,具體對應(yīng)關(guān)系如下。
· 1-Read uncommitted讀未提交。
· 2-Read committed讀已提交。
·4-Repeatable read可重復(fù)讀。
·8-Serializable串行化。
本文版權(quán)歸黑馬程序員Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:黑馬程序員Java培訓(xùn)學(xué)院
首發(fā):https://java.itheima.com
1024首播|39歲程序員逆襲記:不被年齡定義,AI浪潮里再迎春天
2025-10-241024程序員節(jié)丨10年同行,致敬用代碼改變世界的你
2025-10-24【AI設(shè)計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運營】深圳跨境電商運營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運維】鄭州運維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19