91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hibernate事務的示例分析

發布時間:2021-12-05 09:13:20 來源:億速云 閱讀:153 作者:小新 欄目:編程語言

小編給大家分享一下Hibernate事務的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Hibernate是JDBC的輕量級封裝,本身并不具備事務管理能力。在事務管理層,Hibernate將其委托給底層的JDBC或者JTA,以實現事務管理和調度功能。

Hibernate事務處理機制基于JDBC Transaction.我們也可以通過配置文件設定采用JTA作為事務管理實現:

<hibernate-configuration> <session-factory> ……  <property name="hibernate.transaction.factory_class"> net.sf.hibernate.transaction.JTATransactionFactory  <!--net.sf.hibernate.transaction.JDBCTransactionFactory--> </property> ……  </session-factory> </hibernate-configuration>

基于JDBC的事務管理將事務管理委托給JDBC 進行處理無疑是最簡單的實現方式,Hibernate事務對于JDBC事務的封裝也極為簡單。
我們來看下面這段代碼:

session = sessionFactory.openSession();  Transaction tx = session.beginTransaction();  ……  tx.commit();

從JDBC層面而言,上面的代碼實際上對應著:

Connection dbconn = getConnection();  dbconn.setAutoCommit(false);  ……  dbconn.commit();

就是這么簡單,Hibernate并沒有做更多的事情(實際上也沒法做更多的事情),只是將這樣的JDBC代碼進行了封裝而已。

這里要注意的是,在sessionFactory.openSession()中,hibernate會初始化數據庫連接,與此同時,將其 AutoCommit 設為關閉狀態(false)。而其后,在Session.beginTransaction 方法中,Hibernate 會再次確認Connection 的AutoCommit 屬性被設為關閉狀態( 為了防止用戶代碼對session 的Connection.AutoCommit屬性進行修改)。

這也就是說,我們一開始從SessionFactory獲得的session,其自動提交屬性就已經被關閉(AutoCommit=false),下面的代碼將不會對數據庫產生任何效果:

session = sessionFactory.openSession();  session.save(user);  session.close();

這實際上相當于 JDBC Connection的AutoCommit屬性被設為false,執行了若干JDBC操作之后,沒有調用commit操作即將Connection關閉。如果要使代碼真正作用到數據庫,我們必須顯式的調用Transaction指令:

session = sessionFactory.openSession();  Transaction tx = session.beginTransaction();  session.save(user);  tx.commit();  session.close();

以上是“Hibernate事務的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

苍溪县| 龙州县| 渭源县| 托克逊县| 富源县| 海丰县| 汨罗市| 新野县| 云安县| 普洱| 镇安县| 晋江市| 沁水县| 健康| 湖州市| 忻城县| 鄯善县| 怀仁县| 红原县| 墨玉县| 万安县| 玛曲县| 安义县| 耿马| 富平县| 库车县| 高平市| 西乌珠穆沁旗| 永清县| 大厂| 开远市| 罗甸县| 蓬安县| 南陵县| 通渭县| 宜都市| 泽普县| 如皋市| 桂东县| 新营市| 绩溪县|