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

释放双眼,带上耳机,听听看~!

 

 

 

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

 

 

本篇博客会详细讲述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

 

转载于:https://www.cnblogs.com/DawnCHENXI/p/9143711.html

给TA打赏
共{{data.count}}人
人已打赏
安全技术

Ubuntu下安装Mysql 以及mysql-query-browser

2022-1-11 12:36:11

病毒疫情

白衣执甲 英雄本色

2020-3-23 8:31:00

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索