尚硅谷面试第一季-08Spring支持的常用数据库事务传播属性和事务隔离级别
目录结构:

关键代码:
BookShopServiceImpl.java
package Spring支持的常用数据库事务传播属性和事务隔离级别.tx.service.impl; import Spring支持的常用数据库事务传播属性和事务隔离级别.tx.dao.BookShopDao;
import Spring支持的常用数据库事务传播属性和事务隔离级别.tx.service.BookShopService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; /**
* @Transactional注解
* 该注解可以添加到类上,也可以添加到方法上
* 如果添加到类上,那么类中所有的方法都添加上了事务
* 如果添加到方法上,只有添加了该注解的方法才添加了事务
*/
//@Transactional
@Service("bookShopService")
public class BookShopServiceImpl implements BookShopService { @Autowired
private BookShopDao bookShopDao; //1.请简单介绍Spring支持的常用数据库事务传播属性和事务隔离级别? /**
* 事务的属性:
* 1.★propagation:用来设置事务的传播行为
* 事务的传播行为:一个方法运行在了一个开启了事务的方法中时,当前方法是使用原来的事务还是开启一个新的事务
* -Propagation.REQUIRED:默认值,使用原来的事务
* -Propagation.REQUIRES_NEW:将原来的事务挂起,开启一个新的事务
* 2.★isolation:用来设置事务的隔离级别
* -Isolation.REPEATABLE_READ:可重复读,MySQL默认的隔离级别
* -Isolation.READ_COMMITTED:读已提交,Oracle默认的隔离级别,开发时通常使用的隔离级别
*/
@Transactional(propagation=Propagation.REQUIRES_NEW,isolation=Isolation.READ_COMMITTED)
@Override
public void purchase(int userId, String isbn) {
//1.获取要买的图书的价格
double bookPrice = bookShopDao.getBookPriceByIsbn(isbn);
// System.out.println(bookPrice);
//2.更新图书的库存
bookShopDao.updateBookStock(isbn);
//3.更新用户的余额
bookShopDao.updateAccountBalance(userId, bookPrice);
// double bookPriceByIsbn = bookShopDao.getBookPriceByIsbn(isbn);
// System.out.println(bookPriceByIsbn);
} }
完整代码:
https://gitee.com/ZhangShunHai/interview_atguigu_seasonone/tree/master/ssm_spring%20transaction
课堂重点:











尚硅谷面试第一季-08Spring支持的常用数据库事务传播属性和事务隔离级别的更多相关文章
- 尚硅谷面试第一季-11MyBatis中当实体类中的属性名和表中的字段名不一样怎么办
问题: MyBatis中当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 解决方案: 1.写sql语句时起别名 <!-- id属性:必须是接口中方法的方法名 resultType属性:必须是 ...
- 尚硅谷面试第一季-18ES与Solr的区别
背景:它们都是基于Lucene搜索服务器基础之上开发,一款优秀的,高性能的企业级搜索服务器.[是因为他们都是基于分词技术构建的倒排索引的方式进行查询] 开发语言:Java语言开发 诞生时间:Solr ...
- 尚硅谷面试第一季-09SpringMVC中如何解决POST请求中文乱码问题GET的又如何处理呢
目录结构: 关键代码: web.xml <filter> <filter-name>CharacterEncodingFilter</filter-name> &l ...
- 尚硅谷面试第一季-17Redis 在项目中的使用场景
数据类型 使用场景 String 比如说 ,我想知道什么时候封锁一个IP地址.Incrby命令 Hash 存储用户信息[id,name,age] Hset(key,field,value) Hset( ...
- 尚硅谷面试第一季-16 JVM垃圾回收机制
问题的提出:GC发生在JVM那个部分,由几种GC,它们的算法是什么? 课堂重点: GC发生在JVM体系的堆部分. 什么是GC(分代手机算法)Minor GC 和 Full GC GC4大算法: ...
- 尚硅谷面试第一季-13git分支相关命令
课堂重点:分支相关命令 实际应用-工作流程 实操命令及运行结果: 创建master分支并提交 git init git add . git commit -m "V1.0" git ...
- 尚硅谷面试第一季-15Mysql什么时候建索引
课堂重点: MySQL的官方定义: 索引的优势: 索引的劣势: 那些情况下需要建立索引: 那些情况下不要建立索引: 何为过滤性:例如在数据库字段里,手机号/身份证号这些字段是过滤性好的字段,而性别则是 ...
- 尚硅谷面试第一季-14Redis持久化类型及其区别
课堂重点: Redis提供了两种不同形式的持久化方案,分别是RDB和AOF. RDB使用Snapshot快照做全量的存储. RDB优缺点: AOF 以日志的方式记录每个写操作,只最佳,不该写文件.增量 ...
- 尚硅谷面试第一季-12Linux常用服务类相关命令
课堂重点: 实操命令及运行结果: (centos 6) service network status chkconfig --list chkconfig --level 5 network off ...
随机推荐
- LINQ以及LINQ to Object 和LINQ to Entities
LINQ的全称是Language Integrated Query,中文译成“语言集成查询”,是一种查询技术. LINQ查询通过提供一种跨各种数据源和数据格式使用数据的一致模型,简化了查询过程.LIN ...
- web.config或App.config中AttachDBFilenamex相对路径问题
<add name="employeeManagerConnectionString" connectionString="Data Source=.\SQLExp ...
- POJ 2752 Seek the Name,Seek the Fame(KMP,前缀与后缀相等)
Seek the Name,Seek the Fame 过了个年,缓了这么多天终于开始刷题了,好颓废~(-.-)~ 我发现在家真的很难去学习,因为你还要陪父母,干活,做家务等等 但是还是不能浪费时间啊 ...
- C#会对于未赋值的变量/成员变量,给予一个初始值吗?
如果我有程序如下: C# code ? 1 2 3 4 5 6 7 public class My { public bool b; public ...
- Message对象
一)描述 1: 每一个Message对象都包含两个对象: (1)google::protobuf::Descriptor 描述对象,是Message所有Filed的一个集合,它又包含了FieldDes ...
- ASP.NET JSON(转http://www.360doc.com/content/14/0615/21/18155648_386887590.shtml)
概念介绍还是先简单说说Json的一些例子吧.注意,以下概念是我自己定义的,可以参考.net里面的TYPE的模型设计如果有争议,欢迎提出来探讨!1.最简单:{"total":0} t ...
- sitecore系列教程之Sitecore个性化-试点开始,测试,优化,增量
这是利用Sitecore的个性化引擎实现数字化转型的三部分系列的第三部分.之前的帖子旨在通过为您的个性化体验定义内容策略并在Sitecore中配置该策略来设置基础. 在此之前,我们讨论了内容策略以 ...
- java三大工厂结果总览
2018-11-02 21:27:18 开始写 谢谢.Thank you.Salamat Do(撒拉玛特朵).あリがCám o*n(嘉蒙)とゥ(阿里嘎都).감사합니다 (勘三哈咪瘩).terima K ...
- Java多线程-----volatile关键字详解
volatile原理 Java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其他线程.当把变量声明为volatile类型后, 编译器与运行时都会注意 ...
- CSS选择符-----关系选择符
包含选择符(E F) 选择所有被E元素包含的F元素 与 子选择符(E>F) 不同的是,包含选择符将会命中所有符合条件的后代,包括儿子,孙子,孙子的孙子... <! ...