Hibernate3不用捕捉异常了吗?

来源:百度知道 编辑:UC知道 时间:2024/09/24 04:15:39
下面是一个Dao操作,这个是hibernate2中的写法:
public void updateUser(User user) { // 更新
Transaction tx = null;
Session session = HibernateUtil.getSession();
try {
tx = session.beginTransaction();
session.update(user);
tx.commit();
} catch (HibernateException ex) {
ex.printStackTrace();
if (tx != null) {
HibernateUtil.rollbackTransaction(tx);
}
} finally {
if (session != null) {
HibernateUtil.closeSession(session);
}
}
}

但在hibernate3中去掉try/catch也可以呢?
那我想知道在hibernate3中,还用我手动去在catch和finally中判断,然后去回滚或关闭session吗?

这是因为在hibernate中定义的异常差不多(就是全部)都是继承了RuntimeException异常类的

所以不用捕获,但是异常还是存在的

可以自己在代码里面try/catch

事务可以控制

Transaction就是控制事务的

Session类有个beginTransaction() 方法开始事务
Transaction类有commit()和rollback()方法

那就是hibernate3里面已经把异常处理掉了
不用你再捕获处理了

不需要你自己捕获异常.