`
zcwfeng
  • 浏览: 98738 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

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();
}
}

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics