美文网首页
Hibernate Session和Transaction

Hibernate Session和Transaction

作者: 伊凡的一天 | 来源:发表于2019-01-11 16:40 被阅读7次

说到Hibernate中的Session和Transaction的概念前, 我们先看看以下以下的场景:

  1. 有一天,小明到银行办理业务,轮到小明时,他办理了两个业务:
  2. 第一个业务,他存了1000元钱
  3. 第二个业务,他取了200元钱
  4. 最后,他离开了银行

上面的场景其实与Session和Transaction息息相关。

  1. 小明到银行办理业务,轮到小明时,即开始了一个Session
  2. 小明办理第一个业务:存钱。实际上开始了一个Transaction
  3. 小明第一个业务:存钱结束后,即Transaction提交了
  4. 小明开始办理第二个业务:取钱。实际上开始了又一个Transaction
  5. 小明的第二个业务:取钱结束后,即新的Transaction提交了
  6. 小明离开银行,即代表了关闭了这个Session

最后,看一下Hibernate中Transaction的模板代码:

   Session session = null;
    Transaction tx = null;
    try{
        session = HibernateUtil.getSessionFactory().openSession();
        tx = session.beginTransaction();    
        //doSomething(session);
        tx.commit();
    }catch(RuntimeException e){
        try{
            tx.rollback();
        }catch(RuntimeException rbe){
            log.error("Couldn’t roll back transaction", rbe);
        }
        throw e;
    }finally{
        if(session!=null){
            session.close();
        }
    }

相关文章

网友评论

      本文标题:Hibernate Session和Transaction

      本文链接:https://www.haomeiwen.com/subject/cywxdqtx.html