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

1.什么是事务一荣俱荣,一损俱损,很多复杂的操作我们可以把它看成是一个整体,要么同时成功,要么同时失败。事务的四个特征ACID:原子性(Atomic):表示组成一个事务的多个数据库的操作的不可分割的单元,只有所有的操作成功才算成功,整个事务提交,其中任何一个操作失败了都是导致整个所有操作失败,事务会回滚。一致性(Consistentcy):事务操作成功后,数据库所处的状态和业务规则一致。如果A账户给B账户汇100,A账户减去100,B加上100,两个账户的总额是不变的。隔离性(islati
摘要由CSDN通过智能技术生成

1.什么是事务

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


事务的四个特征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包  链接如下:https://www.cnblogs.com/ysource/p/12956273.html  jar在文章中

 

 

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

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

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

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

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

    test:用于测试类

 

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 }

  3.2  定义OrderDao接口 代码如下:

1 package com.spring.dao;
 2 
 3 import com.spring.model.Order;
 4 
 5 public interface OrderDao {
 6     //保存订单 
 7     public void saveOrder(Order order);
 8     
 9     
10     
11 }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值