java 事务总结理解

一、为什么需要事务

事务是为了解决数据安全操作提出的,事务控制实际是控制数据的安全访问。

二、事务的原则(属性)

原子性:事务执行过程中任何失败,都可能导致整个事务全部失败。简而言之,要么都成功,要么都失败。
一致性:当事务执行失败时,所有事务影响的数据都应该恢复到事务执行之前。
隔离性:当前事务不能对其他事务造成影响。
持久性:当事务提交后,数据会持久化,不在受该事务影响。

三、java事务的类型

jdbc事务(最常见的一种)、JTA、容器事务。
jdbc:
jdbc事务是通过connection对象控制的,jdbc connection接口提供了自动提交和手动提交事务。
原理:在sql开始执行时save point,当事务出现失败时,rollback到save point,或这个事务回滚。
缺陷:只能用于单个数据源

JTA(Java Transaction API)事务:
JTA是一种高层的,与实现无关的,与协议无关的API,应用程序和应用服务器可以使用JTA来访问事务。可以处理多个数据源的事务。
使用过程需要实现javax.sql.XADataSource 、 javax.sql.XAConnection 和 javax.sql.XAResource 接口的 JDBC 驱动程序。

应用程序应该使用

UserTransaction.begin()
UserTransaction.commit() 
 setTransaction.rollback()

现在的版本升级,不知道有没有更好的处理。

容器事务:
这个事务对容器的要求很强.不需要程序特殊处理,只要打上标识,全权由容器处理。理论上来说,必须使用EJB.

四、事务的隔离级别

TRANSACTION_NONE JDBC驱动不支持事务
TRANSACTION_READ_UNCOMMITTED 允许脏读、不可重复读和幻读。
TRANSACTION_READ_COMMITTED 禁止脏读,但允许不可重复读和幻读。
TRANSACTION_REPEATABLE_READ 禁止脏读和不可重复读,单运行幻读。
TRANSACTION_SERIALIZABLE 禁止脏读、不可重复读和幻读
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值