zoukankan      html  css  js  c++  java
  • SpringBoot使用默认的配置实现数据库事务

    MySQL默认的存储引擎为MyISAM不支持事务,需要改成InnoDB才能支持事务,此处如何查看与修改略过。

    网上很多人说在启动类中加入@EnableTransactionManagement注解才能生效,但在实际的开发过程中发现不加也可以,原因是SpringBoot自动开启了事务

    @Transactional注解能加在类或者方法上,优先级:方法>类

    事务生效总结:

      方法A调用方法B事务生效总结:

      A有T  B有T  生效

      A有T  B无T  生效

      A无T  B有T  不生效

    小例子

    @Transactional
    @Service
    public class DemoService {
    
        @Autowired
        private DemoDao demoDao;
        
        public void test(User user) {
            try{
                demoDao.insert(user);
                int i = 1/0;
            } catch (Exception e) {
                // 事務已經回滾
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            }
        }
    
    }
  • 相关阅读:
    docker应用部署
    Netty实现WebSocket通信
    spring-mvc框架简单搭建
    spring-tx 事物
    spring注解及简单实用
    Spring Aop实现简单代码实现
    Jedis操作
    Proxy说明
    下载返回流
    向上捅破天,向下扎到根
  • 原文地址:https://www.cnblogs.com/zhanzhuang/p/11957161.html
Copyright © 2011-2022 走看看