一、提供⼀致的事务模型支持不同的事务管理技术
A、PlatformTransactionManager
B、TransactionDefifinition
三、事务的传播特性
四、事务隔离特性
a、脏读,是因为当一个事务读取另一个未提交事务的数据时,这个数据可能处于不确定的状态,也就是说,它可能被修改了,但还没有被提交。这种不确定状态的数据也被称为脏数据,因此被称为脏读。
b、幻读(phantom read)之所以被称为幻读,是因为当一个事务在同一查询语句下多次执行时,由于其他事务插入了新的数据,第二次查询返回了第一次查询未返回的新数据,就好像新的数据像幻影一样出现在查询结果中,这种现象就被称为幻读。
c、不可重复读(non-repeatable read)之所以被称为不可重复读,是因为当一个事务在同一查询语句下多次执行时,由于其他事务修改了数据,第二次查询返回了与第一次不同的结果,从而导致无法重复读取相同的数据。
五、编程式事务
事务回滚是指在数据库管理系统中,如果一个事务在执行过程中出现了错误或者其他的异常情况,数据库会自动撤销事务执行的所有操作,回滚到事务开始之前的状态。这样可以保证数据库的一致性和可靠性。
D、TransactionTemplate
六、声明式事务
AOP Proxy-----进行模板式的事务操作
AOP-----动态代理或封装AspectJ
A、基于注解的配置⽅式
a、开启事务注解的⽅式和xml文件配置(二选一)
c、@Transactional
事务是通过调用代理类实现的,方法3内部调用@Transactional的方法2时 ,由于方法2本身是没有事务的,所以并没有走到方法2事务那一步,只是隐式的调用了数据库的默认事务就提交了,所以会插入·一条记录不会因异常类而回滚。