SSM-Spring-23:概念《Spring中的事务是什么?》

简介:     ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------     本篇博客会详细讲述Spring中的事务,会展开来用语言解释,用于了解概念和准备面试   事务的概念:   一个或者一组sql语句来完成一个功能!要么都执行,要么都不执行   事务具有的四个特性:  ACID特性!           01.

 

 

 

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------

 

 

本篇博客会详细讲述Spring中的事务,会展开来用语言解释,用于了解概念和准备面试

 

事务的概念

  一个或者一组sql语句来完成一个功能要么都执行,要么都不执行

 

事务具有的四个特性:  ACID特性!

 

        01.原子性:一个事物都是一个不可分割的单位!所有的操作 要么都执行,要么都不执行!

 

        02.一致性:事务必须是数据库从一个一致性的状态到达另一个一致性的状态!

 

        03.隔离性:一个事务的执行不会被其他的事务干扰!事务之间相互独立!

 

        04.持久性:事务一旦被提交!这个操作对数据库来说是永久性的!

 

Spring的事务管理

 

         事务本事是数据库中的概念! 按理说应该在数据访问层(dao)

 

        

 

        绝大多数的情况下我们是把事务 提升到  业务逻辑层

 

        01.使用spring的事务代理工厂 来 管理事务!

 

        02.使用spring的注解                来 管理事务!     常用

 

        03.使用AspectJ的AOP配置     来 管理事务!      常用

 

需要掌握的两个属性名:        

  isolation:事务的隔离级别

 

           01.default:采用数据库默认的事务隔离级别

 

               001.mysql ---》repeatable-read

 

               002.oracle---》read_committed

 

           02. repeatable-read:可重复读取!解决了脏读,不可重复读,没解决幻读!

 

           03. read_committed读已提交! 解决了脏读,没解决不可重复读,幻读!

 

           04. read_uncommitted读未提交!什么都没有解决!

 

           05. serializable串行化!级别最高!效率最低!不存在并发的问题!

 

        propagation: 事务的传播行为:一共7中方式!

 

           01.required:是spring默认的事务传播行为!

 

                  指定的方法必须在事务中执行!如果没有事务,则会自动创建一个事务!

 

           02.supports:有事务就在事务环境下执行,没有事务就直接执行!

 

           03.mandatory:

 

                  指定的方法必须在事务中执行!如果没有事务,则抛出异常!

 

           04.requires_new:总是新创建一个事务!

 

              如果当前方法存在事务,则把当前的事务挂起,直到新创建的事务执行完毕后执行!

 

           05.not_supported:指定的方法不能在事务中执行!如果当前方法存在事务,则把当前的事务挂起!

 

           06.never:指定的方法不能在事务中执行!如果当前方法存在事务,则抛出异常!

 

           07.nested:指定的方法必须在事务内执行!

 

               如果执行的方法没有事务,则会创建一个事务!

 

               如果执行的方法没有事务,则会嵌套执行!

 

        

 

       timeout_default:定义了事务默认的超时时间

 

Spring事务管理的接口:PlatformTransactionManager

 

          常用的两个实现类:

 

          01.使用jdbc和MyBatis时     使用DataSourceTrancationManager

 

          02.使用hibernate时              使用HibernateTrancationManager

 

Spring事务回滚的方式

 

          默认的回滚方式--》发生运行时异常回滚!发送受查异常时提交!

 

          受查异常肯定需要我们手动的设置回滚方式!

 

          运行时异常严重!一旦发生,JVM中止执行!

 

实现自定义异常类!RuntimeException -->  Exception --->  Throwable

 

目录
相关文章
|
5天前
|
安全 Java 数据库
一天十道Java面试题----第四天(线程池复用的原理------>spring事务的实现方式原理以及隔离级别)
这篇文章是关于Java面试题的笔记,涵盖了线程池复用原理、Spring框架基础、AOP和IOC概念、Bean生命周期和作用域、单例Bean的线程安全性、Spring中使用的设计模式、以及Spring事务的实现方式和隔离级别等知识点。
|
23天前
|
Java 关系型数据库 MySQL
Spring 事务失效场景总结
Spring 事务失效场景总结
39 4
|
6天前
|
Java 程序员 数据库连接
女朋友不懂Spring事务原理,今天给她讲清楚了!
该文章讲述了如何解释Spring事务管理的基本原理,特别是针对女朋友在面试中遇到的问题。文章首先通过一个简单的例子引入了传统事务处理的方式,然后详细讨论了Spring事务管理的实现机制。
女朋友不懂Spring事务原理,今天给她讲清楚了!
|
3天前
|
XML Java 数据库
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
这篇文章是Spring5框架的实战教程,详细介绍了事务的概念、ACID特性、事务操作的场景,并通过实际的银行转账示例,演示了Spring框架中声明式事务管理的实现,包括使用注解和XML配置两种方式,以及如何配置事务参数来控制事务的行为。
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
|
5天前
|
前端开发 Java 数据库连接
一天十道Java面试题----第五天(spring的事务传播机制------>mybatis的优缺点)
这篇文章总结了Java面试中的十个问题,包括Spring事务传播机制、Spring事务失效条件、Bean自动装配方式、Spring、Spring MVC和Spring Boot的区别、Spring MVC的工作流程和主要组件、Spring Boot的自动配置原理和Starter概念、嵌入式服务器的使用原因,以及MyBatis的优缺点。
|
18天前
|
Java 关系型数据库 MySQL
Spring Boot事务配置管理
主要总结了 Spring Boot 中如何使用事务,只要使用 @Transactional 注解即可使用,非常简单方便。除此之外,重点总结了三个在实际项目中可能遇到的坑点,这非常有意义,因为事务这东西不出问题还好,出了问题比较难以排查,所以总结的这三点注意事项,希望能帮助到开发中的朋友。
|
1月前
|
Java 数据库连接 API
Spring事务管理嵌套事务详解 : 同一个类中,一个方法调用另外一个有事务的方法
Spring事务管理嵌套事务详解 : 同一个类中,一个方法调用另外一个有事务的方法
|
1月前
|
Java Spring
spring 事务控制 设置手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
spring 事务控制 设置手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
1月前
|
XML Java 关系型数据库
面试一口气说出Spring的声明式事务@Transactional注解的6种失效场景
面试一口气说出Spring的声明式事务@Transactional注解的6种失效场景
|
1月前
|
Java Spring
解析Spring Boot中的事务管理机制
解析Spring Boot中的事务管理机制