事务的基本介绍、Spring事务管理介绍(编程式事务和声明式事务)

事务概念、什么是事务?

(1)事务是数据库操作最基本单元,逻辑上一组操作要么都成功,如果有一个操作失败所有操作都失败。
(2)典型场景:银行转账

为什么要引入事务?

 发生异常情况下需要引入事务,例如:银行转账,要么转成功提交事务,失败的话都失败,回滚事务。

事务四个特性(ACID特性)

(1)原子性(指的是过程不可分割,要么都成功,要么都失败)
(2)一致性(指的是操作之前、操作之后的总量是不变的)

eg: Lucy 有100块,Mary有100块,两个总和200块。Lucy转100给Mary后,Lucy没有钱了,Mary有200,两人总和还是200。转账前,转账后总量不变。这个指的就是一致性。
(3)隔离性(多事务操作,他们之间不会产生影响)

eg:两个人操作同一条记录,是互不影响的。
(4)持久性(事务最终是要提交的,提交后表中的数据真正发生变化,这就叫持久性)

注:事务的 ACID特性指的就是 事务的原子性、一致性、隔离性、持久性

事务的过程

1)开启事务
2)进行业务操作
3)没有发生异常,提交事务
4)出现异常,事务回滚


Spring事务管理介绍(编程式事务管理 和 声明式事务管理)

1、事务添加到 JavaEE 三层架构里面 Service层(业务逻辑层)

2、在 Spring 中进行事务管理操作有两种方式:编程式事务管理 和 声明式事务管理

(1)编程式事务管理:需要自己手动编写开启事务、提交事务、回滚事务代码

public class UserServer {

    /**
     * 转账的方法
     */
    public void account() {
        try {
            //第一步:开启事务

            //第二步:进行业务操作
            //Lucy 少100
            userDao.reduceMoney();

            //模拟异常
            int i = 10 / 0;

            //Mary多100
            userDao.addMoney();

            //第三步:没有发生异常,提交事务
        } catch (Exception e) {
            //第四步:出现异常,事务回滚
        }
    }
}

(2)声明式事务管理(使用这个)

声明式事务管理

(1)基于注解方式实现声明式事务管理(推荐使用)

(2)基于xml配置文件方式

注:在 Spring 中进行声明式事务管理,底层使用 AOP 原理.。

Spring 事务管理 API

Spring 事务管理接口(PlatformTransactionManager),代表事务管理器,这个接口针对不同的框架提供不同的实现类。例如:Spring 整合的是 MyBatis框架或者 JDBC ,那么 用 DataSourceTransactionManager 的事务管理器实现类。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值