Spring 使用注解对事务控制详解与实例

一荣俱荣,一损俱损,很多复杂的操作我们可以把它看成是一个整体,要么同时成功,要么同时失败。


事务的四个特征ACID:

原子性(Atomic):表示组成一个事务的多个数据库的操作的不可分割的单元,只有所有的操作成功才算成功,整个事务提交,其中任何一个操作失败了都是导致整个所有操作失败,事务会回滚。

一致性(Consistentcy):事务操作成功后,数据库所处的状态和业务规则一致。如果A账户给B账户汇100,A账户减去100,B加上100,两个账户的总额是不变的。
隔离性(islation):在多个数据库的操作相同的数据并发时,不同的事务有自己的数据空间,事务与事务之间不受干扰(不是绝对的)。干扰程度受数据库或者操作事务的隔离级别来决定,隔离级别越高,干扰就越低,数据的一致性越好,并发性就越差。
持久性(Druability):一旦事务提交成功,数据就被持久化到数据库,不可以回滚。

 

 

2.spring使用注解对事务的控制

  Spring 事务管理有两种方式:编程式事务管理声明式事务管理
    编程式事务管理通过TransactionTemplate手动管理事务,在实际应用中很少使用,我们来重点学习声明式事务管理
    声明式事务管理有三种实现方式:基于TransactionProxyFactoryBean的方式基于AspectJ的XML方式基于注解的方式
  

  1. 新建一个java工程——导入spring 和事务管理所需要的jar   ——然后选择全部jar 右键Build path   ——最后如图           (我的java版本jre是1.8)                              Spring事务需要的jar

 

Spring 使用注解对事务控制详解与实例

  2.在src目录下新建5个包   如图

    dao :数据连接层,主要用于存放对数据进行操作的类

    model:模型层,主要用于存放实体类

    service:服务层,主要用于对数据连接层进行操作的一些服务类。

    util:工具类,主要用于存储工具方法

    test:用于测试类

Spring 使用注解对事务控制详解与实例

 

3.在dao数据连接层,建立里与数据库操作的类与对应的接口 (Order 订单 ,detail订单明细)

 3.1 定义detailDao接口 代码如下:

1 package com.spring.dao; 2 3 import com.spring.model.Detail; 4 import com.spring.model.Order; 5 6 public interface detailDao { 7 //保存订单明细 8 public void saveDetail(Detail detail); 9 10 11 12 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssgdy.html