-
使用xml配置声明式事务——基于tx/aop
查看全部 -
使用xml配置声明式事务
查看全部 -
编程事务控制
查看全部 -
spring的事务管理
编程式事务、:通过TransactionTemplate手动管理事务
声明式事务、:使用xml进行配置,只要通过spring的AOP进行实现
查看全部 -
TransactionStatus接口用来记录事务的状态 该接口定义了一组方法,用来获取或判断事务的相应状态信息. 平台事务管理器(PlatformTransactionManager)会根据TransactionDefinition中定义的事务信息(包括隔离级别、传播行为)来进行事务的管理,在管理的过程中事务可能产生了保存点或事务是新的事务等情况,那么这些信息都会记录在TransactionStatus的对象中.
查看全部 -
事务的传播行为要解决的问题:
业务层中添加了事务的的多个方法被一起调用时如何处理各方法间事务的关系的问题,具体来说是事务如何传递的问题。
假如业务层中有事务方法A和B,另外有一个方法C在其方法体中依次调用了A和B,由于A和B都有各自的事务,此时B的传播行为就决定了其如何处理和A已有的事务之间的关系;
七种传播行为分为三类:
支持当前事务,即事务存在则加入当前事务,如果事务不存在分别有新建一个事务,不使用事务,抛出异常三种行为;
不支持当前事务,即独立运行事务,如果事务存在分别有新建一个事务,不使用事务,抛出异常三种行为;
如果当前事务存在,则将自身的事务作为当前事务的子事务运行,在运行子事务时,当前事务记录一个保存点,子事务不报错则和当前事务一起提交或回滚,子事务报错则根据自定义配置让当前事务回滚到保存点或起始点;
查看全部 -
事务隔离级别(级别)
MySql默认的事务隔离级别为REPEATABLE_READ
Oracle默认的事务隔离级别为READ_COMMITTED
查看全部 -
脏读:
一个事务读取到另一个事务还没有提交的数据,如果这些数据被回滚,则读取到的数据是无效的。
不可重复读:
在同一个事务中,多次读取同一数据,读到了另一个事务已经更新的数据,导致返回的结果有所不同。
虚读,幻读:
一个事务读取几行记录后,另一个事务插入一些记录,幻读就发生了,在后来的查询中,第一个事务就会发现原来没有的记录。
查看全部 -
Spring为不同的持久化框架提供了不同PlatformTransactionManager
查看全部 -
事务的特性:
原子性 -> 指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
一致性 -> 指事务前后的数据的完整性必须保持一致。
隔离性 -> 指多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要互相隔离。
持久性 -> 指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,即使数据库发生故障也不应该对其有任何影响。
查看全部 -
spring事务管理的核心接口,
PlatformTransactionManager的实现类真正执行事务管理;
TransactionDefinition的实现类保存了对事务管理的配置信息,该类的实例被Manager读取用来创建执行事务管理的对象;
TransactionStatus的实现类保存了事务运行中的状态;
查看全部 -
事务隔离级别:一般是DEFAULT,用数据库的默认隔离级别
MySQL默认是REPEATABLE_READ
ORACLE默认是READ_COMMITTED
查看全部 -
Spring为不同的持久化框架提供了不同PlatformTransactionManager
查看全部 -
声明式事务管理:代理方式(Spring Aop)
查看全部 -
单元测试。
查看全部
举报