Spring事务管理(二)

一、事务隔离的级别(isolation = Isolation.READ_COMMITTED)

最常用的值isolation = Isolation.READ_COMMITTED,读已提交

二、事务异常回滚

三、数据库只读属性,readOnly = false;(true),此方法只会读取数据库数据而不能更改数据

四、timeout=10,单位是秒,只连接等待时间

package top.biglin.spring.tx;

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;

/**
 * @author Chiawei
 * @date 2019/1/15 11:28
 */
@Service("bookShopService")
public class BookShopServiceImpl implements BookShopService {

    @Autowired
    private BookShopDao bookShopDao;

    /**
     *添加事务,Propagation.REQUIRED,使用调用原来的事务
     * Propagation.REQUIRES_NEW 新开一个事务
     */
    @Transactional(propagation = Propagation.REQUIRES_NEW,
                    isolation = Isolation.READ_COMMITTED,
                    noRollbackFor = {UserAccountException.class},//对哪些异常不回滚
                    rollbackFor = {top.biglin.spring.tx.UserAccountException.class},
                    timeout = 5,
                    readOnly = false)//对哪些异常进行回滚
    @Override
    public void purchase(String username, String isbn) {

        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
        }
        //获取书的单价
        int price = bookShopDao.findBookPriceByIsbn(isbn);

        //更新书的库存
        bookShopDao.updateBookStock(isbn);

        //更新余额
        bookShopDao.updateUserAccount(username, price);
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 事物的特性(ACID) 我们在使用JDBC或者Mybatis进行数据持久化操作时,我们的xml配置通常如下: 并发...
    Y了个J阅读 1,250评论 0 1
  • Spring 事务传播特性和隔离级别 事务是处理逻辑原子性的保证,作为单个逻辑单元执行一系列操作,要么执行完成要么...
    自负的鱼阅读 9,021评论 1 33
  • Spring 事务属性分析 事务管理对于企业应用而言至关重要。它保证了用户的每一次操作都是可靠的,即便出现了异常的...
    壹点零阅读 1,336评论 0 2
  • 今天我们去看一下spring是怎么管理事务的。我们先去了解一下事务的特性和spring事务的属性。spri...
    少年丶要淡定阅读 389评论 0 0
  • 什么是事务? 事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中...
    青青子衿zq阅读 8,065评论 0 2