Hibernate事务的写法一定不要搞错了

 什么叫rollback?这是为了在你更新数据过程中出错,回滚至更新前的状态,在你未commit之前(或者commit成功之前)都可以进行回滚,而commit是什么意思?提交,当你确认你更新的数据是你所希望的,你可以提交,此时数据库才真正地更新数据,没有commit之前数据都是未变的.数据库事务处理的一些概念.所以一般的写法是这样:   
  try   {  
                          tx   =   session.beginTransaction();  
   
                          String   strDelete   =   "delete   from   User   where   userNumber='"   +  
                                                                userNumber   +   "'";  
                          Query   query   =   session.createQuery(strDelete);  
                          query.executeUpdate();  
                          tx.commit();  
                          session.flush();  
                          return   true;  
   
                  }   catch   (HibernateException   e)  
   
                  {  
                          try{  
                          tx.rollback();  
                          return   false;  
                          }  
                          catch(HibernateException   ex){  
                          ex.printStackTrace();  
                          }   

而我写的时候是

try{
   session = HibernateSessionFactory.currentSession();
   tx = session.beginTransaction();
   session.update(record);
   tx.commit();
  }catch(HibernateException e) {
   b = false;
     throw e;
  }finally{
    if(tx!=null){
    tx.rollback();
   }

   HibernateSessionFactory.closeSession();
  }
   }

这就代表了无论如何事务是要回滚的,不明白这两种写法的深层次含义,哪一个更好些,希望和大家探讨  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值