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

目录结构:

关键代码:

BookShopServiceImpl.java

 1 package Spring支持的常用数据库事务传播属性和事务隔离级别.tx.service.impl;
 2 
 3 import Spring支持的常用数据库事务传播属性和事务隔离级别.tx.dao.BookShopDao;
 4 import Spring支持的常用数据库事务传播属性和事务隔离级别.tx.service.BookShopService;
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 import org.springframework.stereotype.Service;
 7 import org.springframework.transaction.annotation.Isolation;
 8 import org.springframework.transaction.annotation.Propagation;
 9 import org.springframework.transaction.annotation.Transactional;
10 
11 
12 /**
13  * @Transactional注解
14  *     该注解可以添加到类上,也可以添加到方法上
15  *     如果添加到类上,那么类中所有的方法都添加上了事务
16  *     如果添加到方法上,只有添加了该注解的方法才添加了事务
17  */
18 //@Transactional
19 @Service("bookShopService")
20 public class BookShopServiceImpl implements BookShopService {
21 
22     @Autowired
23     private BookShopDao bookShopDao;
24     
25     //1.请简单介绍Spring支持的常用数据库事务传播属性和事务隔离级别?
26     
27     /**
28      * 事务的属性:
29      *     1.★propagation:用来设置事务的传播行为
30      *         事务的传播行为:一个方法运行在了一个开启了事务的方法中时,当前方法是使用原来的事务还是开启一个新的事务
31      *         -Propagation.REQUIRED:默认值,使用原来的事务
32      *         -Propagation.REQUIRES_NEW:将原来的事务挂起,开启一个新的事务
33      *     2.★isolation:用来设置事务的隔离级别
34      *         -Isolation.REPEATABLE_READ:可重复读,MySQL默认的隔离级别
35      *         -Isolation.READ_COMMITTED:读已提交,Oracle默认的隔离级别,开发时通常使用的隔离级别
36      */
37     @Transactional(propagation=Propagation.REQUIRES_NEW,isolation=Isolation.READ_COMMITTED)
38     @Override
39     public void purchase(int userId, String isbn) {
40         //1.获取要买的图书的价格
41         double bookPrice = bookShopDao.getBookPriceByIsbn(isbn);
42 //        System.out.println(bookPrice);
43         //2.更新图书的库存
44         bookShopDao.updateBookStock(isbn);
45         //3.更新用户的余额
46         bookShopDao.updateAccountBalance(userId, bookPrice);
47 //        double bookPriceByIsbn = bookShopDao.getBookPriceByIsbn(isbn);
48 //        System.out.println(bookPriceByIsbn);
49     }
50 
51 }

完整代码:

 https://gitee.com/ZhangShunHai/interview_atguigu_seasonone/tree/master/ssm_spring%20transaction

课堂重点:

原文地址:https://www.cnblogs.com/zsh-blogs/p/10616245.html