美文网首页
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