浅谈Hibernate3中的事务
2014-05-25 00:32
260 查看
在进行数据库编程时,需要对事务有一定的掌握,来保证数据的正确性和一致性。Hibernate3中支持两种事务,一种是Hibernate事务;另外一种就是JTA事务。
再谈Hibernate事务的范围,Hibernate中的事务只是局限在Session中的,只要Session关闭,事务也就会关闭(你如果没有提交事务,那么数据库什么也不会改变)。如果你需要更宽范围的事务,那么就得使用JTA了。
<property name="transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
而后,在程序中就要从容器中来获取事务了。
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>
而后,在程序中就要从容器中来获取事务了。
相关文章推荐
- 浅谈HTTP事务的一个过程
- 浅谈SQL Server中的事务日志(二)----事务日志在修改数据时的角色
- 浅谈管理事务和数据
- Spring 的事务处理浅谈
- 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
- 浅谈SQL Server中的事务日志(一)----事务日志的物理和逻辑构架
- 浅谈SQL Server中的事务日志(二)----事务日志在修改数据时的角色
- 浅谈Spring中的事务回滚
- 浅谈数据库--事务(mysql)
- 浅谈Hibernate3中的级联
- 浅谈SQL SERVER中事务的ACID
- 浅谈SQL Server中的事务日志(一)----事务日志的物理和逻辑构架
- 浅谈事务、COM+及分布式事务
- 浅谈SQL SERVER中事务的ACID
- 浅谈SQL SERVER中事务的ACID
- 辛星浅谈Redis中的事务
- 浅谈SQL Server事务与锁(上篇)
- spring 事务浅谈
- 浅谈Spring的两种事务定义方式
- 安卓开发_浅谈Fragment之事务添加Fragment对象