| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> spring中的事务、事务的四个特性(ACID)、Transactional注解里面可以配置的相关参数: -> 正文阅读 |
|
[Java知识库]spring中的事务、事务的四个特性(ACID)、Transactional注解里面可以配置的相关参数: |
目录 1、事务添加到 JavaEE 三层结构里面 Service 层(业务逻辑层) 4、在 Spring 进行声明式事务管理,底层使用 AOP 原理 5、@Transactional注解里面可以配置的相关参数: 1、propagation:事务传播行为由传播属性来指定。以下是7种传播类型,常用的及时一二种。 1.什么是事务?事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操 作都失败 2、事务四个特性(ACID)(1)原子性:事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。 (2)一致性:几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。 (3)隔离性:事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。 (4)持久性:对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。 3、典型场景:银行转账lucy 转账 100 元 给 mary >>>> lucy 少 100,mary 多 100 在spring中进行事务管理1、事务添加到 JavaEE 三层结构里面 Service 层(业务逻辑层)2、在 Spring 进行事务管理操作有两种方式①编程式事务管理(不用) ②声明式事务管理(使用,下面会讲) 3、声明式事务管理①基于注解方式(使用,下面会讲) ②基于 xml 配置文件方式(不用) 4、在 Spring 进行声明式事务管理,底层使用 AOP 原理5、Spring 事务管理 API(1)提供一个接口,代表事务管理器,这个接口针对不同的框架提供不同的实现类 4、详细步骤:1、在 spring 配置文件配置事务管理器
2、在 spring 配置文件,开启事务注解 ? ? ? ? ①在 spring 配置文件引入名称空间 tx
? ? ? ? ②开启事务注解
3、在 service 类上面(或者 service 类里面方法上面)添加事务注解 @Transactional,这个注解添加到类上面(表示整个类都有事务),也可以添加方法上面(表示这个方法开启事务)
5、@Transactional注解里面可以配置的相关参数:1、propagation:事务传播行为由传播属性来指定。以下是7种传播类型,常用的及时一二种。?2、ioslation:事务隔离级别(1)事务有特性成为隔离性,多事务操作之间不会产生影响。不考虑隔离性产生很多问题 (2)有三个读问题:脏读、不可重复读、虚(幻)读 ????????①脏读:一个未提交事务读取到另一个未提交事务的数据 ????????②不可重复读:一个未提交事务读取到另一提交事务修改数据 ????????③虚读:一个未提交事务读取到另一提交事务添加数据 (3)解决:通过设置事务隔离级别,解决读问题 ?3、timeout:超时时间(1)事务需要在一定时间内进行提交,如果不提交进行回滚 (2)默认值是 -1 ,设置时间以秒单位进行计算 4、readOnly:是否只读(1)读:查询操作,写:添加修改删除操作 (2)readOnly 默认值 false,表示可以查询,可以添加修改删除操作 (3)设置 readOnly 值是 true,设置成 true 之后,只能查询 5、rollbackFor:回滚(1)设置出现哪些异常进行事务回滚 6、noRollbackFor:不回滚(1)设置出现哪些异常不进行事务回滚 6、完全注解形式的开发:(代码代替了xml文件)
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 22:32:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |