-
TransactionDefinition定义事务隔离级别 如果不考虑隔离性,会引发如下的安全问题: 1.脏读。 一个事务读取了另一个事务改写但还未提交的数据,如果这些数据被回滚,则读到的数据是无效的。 2.不可重复读。 在同一个事务中,多次读取同一数据返回的结果有所不同。 3.幻读。 一个事务读取了几行记录后,另一个事务插入一些记录,幻读就发生了。再后来的查询中,第一个事务就会发现有些原来没有的记录。 隔离级别的出现就是为了解决以上问题的。 数据库提供的事务的隔离级别(四种): 1.READ_UNCOMMITED; 允许你读取还未提交的改变了的数据,可能导致脏,幻,不可重复读。 2.READ_COMMINTED: 允许在并发事务已经提交后读取,可防止脏读,但幻读和不可重复读还是有可能发生。 3.REPEATABLE_READ: 对相同字段的多次读取是一致的,除非数据被事务本身改变,可防止脏读,不可重复读,但幻读仍有可能出现。 4.SERILIZABLE: 完全服从ACID的隔离级别,确保不发生脏读,幻读,不可重复读,这在所有的隔离级别中是最慢的,它是典型的完全通过锁定在事务中涉及的数据表来完成的。 除了以上的数据库提供的事务隔离级别,spring提供了Default隔离级别,该级别表示spring使用后端数据库默认的隔离级别。 MySQL默认事务隔离级别:REPATABLE_READ(可能出现幻读) Oracle默认:READ_COMMITTED(可能出现不可重复读和幻读)查看全部
-
事务管理器PlatformTransactionManager接口下面的相关实现类查看全部
-
事务的四大特性: 原子性:一个事务或者完全发生、或者完全不发生。 一致性、事务操作之后,数据库所处的状态和有业务规则是一致的。 隔离性:操作中的事务不互相影响。 持久性:操作中放入事务提交后被持久化到数据库。查看全部
-
配置事务代理流程查看全部
-
上一节的编程式事务管理总结查看全部
-
事务的传播行为查看全部
-
事务接口概览查看全部
-
基于注解的声明式事务管理方式的Transactional注解的属性配置查看全部
-
开启注解事物查看全部
-
Aspectj的声明式事物管理详细配置查看全部
-
基于Aspectj的XML的声明式事物管理的配置查看全部
-
xml配置声明式事物的 原始方式查看全部
-
test配置查看全部
-
TransactionStatus接口用来记录事务的状态 该接口定义了一组方法,用来获取或判断事务的相应状态信息. 平台事务管理器(PlatformTransactionManager)会根据TransactionDefinition中定义的事务信息(包括隔离级别、传播行为)来进行事务的管理,在管理的过程中事务可能产生了保存点或事务是新的事务等情况,那么这些信息都会记录在TransactionStatus的对象中.查看全部
-
事务传播行为查看全部
举报
0/150
提交
取消