事务的基本介绍、Spring事务管理介绍

事务的基本介绍、Spring事务管理介绍,第1张

事务概念、什么是事务?

(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 的事务管理器实现类。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/736474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存