浅谈Hibernate3中的事务

在进行数据库编程时,需要对事务有一定的掌握,来保证数据的正确性和一致性。Hibernate3中支持两种事务,一种是Hibernate事务;另外一种就是JTA事务。

Hibernate事务

Hibernate中的事务其实就是对JDBC事务中的简单封装,通常情况下,我们通过Transaction tx = session.beginTransaction()来开启Hibernate事务,其实这该方法调用后,内部大概是把Connection对象调用Connection.setAutoCommit(false)。因为自动提交事务往往很容易出现错误,尤其是在保存多条数据的时候,你希望都保存成功,要么都不保存,这时候自动提交事务会让你头疼,因为它不能得到你期望的结果。开启事务之后,你需要做点数据库的事情,一切都完事之后,你就要手动去提交事务tx.commit();当然,如果出现什么异常的话,肯定需要回滚事务tx.rollback()。

再谈Hibernate事务的范围,Hibernate中的事务只是局限在Session中的,只要Session关闭,事务也就会关闭(你如果没有提交事务,那么数据库什么也不会改变)。如果你需要更宽范围的事务,那么就得使用JTA了。

JTA事务

Hibernate事务是Hibernate3的默认事务配置,如果要更改,那么首先得更改Hibernate配置文件,配置如下:

<property name="transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>

而后,在程序中就要从容器中来获取事务了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值