目录
5).使用数据库默认的隔离级别isolation = Isolation.DEFAULT
spring支持编程式事务管理和声明式事务管理两种方式。
编程式事务使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。
声明式事务是建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。声明式事务最大的优点就是不需要通过编程的方式管理事务,这样就不需要在业务逻辑代码中掺杂事务管理的代码,只需在配置文件中做相关的事务规则声明(或通过基于@Transactional注解的方式),便可以将事务规则应用到业务逻辑中。
使用@Transactional注解完成事务控制,此注解可添加到类上,则对类中所有方法执行事务的设定.此注解可添加到方法上,只是对此方法执行事务的处理。
在配置文件中添加一次,整个项目遵循事务的设定。



允许脏读,也就是可能读取到其他会话中未提交事务修改的数据
只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 (不重复读)
可重复读。在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别消除了不可重复读,但是还存在幻象读,但是innoDB解决了幻读
完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞
MySQL:mysql默认的事务处理级别是'REPEATABLE-READ',也就是可重复读
Oracle:oracle数据库支持READ COMMITTED 和 SERIALIZABLE这两种事务隔离级别。默认系统事务隔离级别是READ COMMITTED,也就是读已提交