事务

一,事务的含义:

         事务(TRANSACTION) 是作为单个逻辑工作单元执行的一系列操作。多个操作作为一个整体向系统提交,要么都执行,要么都不执行。事务是一个不可分割的逻辑单元。

二,事务的特性(ACID):

          原子性(Atomicity):

                   事务是一个完整的操作,事务的各步操作都是不可再分的,要么都执行, 要么都不执行。

         一致性(Consistency):

                   当事务完成时,数据必须处于一致的状态。

         隔离性(Isolation):

                   并发事务之间相互独立、隔离,它不应以任何方式依赖于或影响其他事务。

         持久性(Durability):

                   事务完成后,它对数据库的修改被永久保持。

   在Spring中,所有操作事务的类都继承自 PlatformTransactionManager

三,事务的隔离级别

      ISOLATION_READ_UNCOMMITTED:读未提交       

      ISOLATION_READ_COMMITTED:读已提交

      ISOLATION_REPEATABLE_READ:可重复读 

      ISOLATION_SERIALIZABLE:串行化

四,脏读,不可重复读,幻读(虚读)

  脏读:A事务读取B事务尚未提交的更改数据,并在这个数据的基础上进行操作,这时候如果事务B回滚,那么A事务读到的数据是不被承认的。

  不可重复读:不可重复读是指A事务读取了B事务已经提交的更改数据。假如A在取款事务的过程中,B往该账户转账100,A两次读取的余额发生不一致。

  幻读:A事务读取B事务提交的新增数据,会引发幻读问题。幻读一般发生在计算统计数据的事务中

五,事务的传播行为

 

六,案例

 实体:

   

 

 

 dao层:

     

 

 

 dao层实现:

      

 

 

 service层:

     

 

 

 

service层实现:

    

 

 

 配置文件:

        

 

 

 

    (1)代理工厂

    

 

 

   (2)AOP

       

 

 

   (3) 注解

         

 

 

 测试:

     

  注意点:以上三种配置方式无论哪种都必须在applicationContext.xml文件中配置事务管理器

 

 

 

 

posted on 2019-11-04 12:18  趁你还在  阅读(200)  评论(0编辑  收藏  举报

导航