Hibernate核心類用法-使用Transaction管理事務

來源:互聯網
上載者:User

標籤:

一個典型的事務應該使用下面的形式 在建立完Session對象後即使用beginTransaction()啟動事務 從此開始直到commit()之間的代碼 都會處於同一個事務中 這兩個函數之間所有的資料庫代碼都會在commit()時一次性提交 在提交時 如果某一句代碼執行出現異常 就會復原這一次事物之間的所有執行代碼

 

  1. public User getUser(String username) throws HibernateException {
  2.         Session session = null;
  3.         Transaction tx = null;
  4.         User user = null;
  5.         try {
  6.             session = HibernateSessionFactory.currentSession();
  7.             tx = session.beginTransaction();
  8.             Query query = session.createQuery("from User where username=?");
  9.             query.setString(0, username.trim());
  10.             user = (User)query.uniqueResult();
  11.             query = null;
  12.             tx.commit ();
  13.         }catch(HibernateException e){
  14.             throw e;
  15.         }finally{
  16.             if (tx!=null) {
  17.                 tx.rollback();
  18.             }
  19.             HibernateSessionFactory.closeSession();
  20.         }
  21.         return user;
  22.     }

 

如果Session拋出異常 事務必須復原 Session也會被廢棄 在異常發生後 Session的內部狀態可能會與資料庫失去同步

 

除了這些  Hibernate的核心類操作 還有

使用Session對資料庫的操作

使用Query進行HQL查詢

使用Criteria進行條件查詢

Hibernate核心類用法-使用Transaction管理事務

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.