zoukankan      html  css  js  c++  java
  • 玩转Spring全家桶笔记 04 Spring的事务抽象、事务传播特性、编程式事务、申明式事务

    1.Spring 的事务抽象

    Spring提供了一致的事务模型

    • JDBC/Hibernate/Mybatis 操作数据
    • DataSource/JTA 事务

    2.事务抽象的核心接口

    PlatformTransactionManage

    • DateSourceTransactionManage
    • HibernateTransactionManage
    • JtaTransactionManage

    TransactionDefinition

    • Propagation
    • lsolation
    • Timeout
    • Read-only status

    3.事务传播特性7个

    4.事务隔离特性

    5.编程式事务

    在spring 提供的事务里面经常用下面两种进行事务的操作

    TransactionTemplate

    • TransactionCallback
    • TransactionCallbackWithoutResult

    PlatformTransactionManage

    • 可以传入TransactionDefinition

    6.测试编程式事务

    @SpringBootApplication
    public class DemoApplication implements CommandLineRunner {
    
        @Autowired
        private TransactionTemplate transactionTemplate;
        
        @Autowired
        private JdbcTemplate jdbcTemplate;
        
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    
        @Override
        public void run(String... args) throws Exception {
            
            System.out.println("事务执行前---》"+getCount());
            
            transactionTemplate.execute(new TransactionCallbackWithoutResult() {
                
                @Override
                protected void doInTransactionWithoutResult(TransactionStatus transactionStatus) {
                
                    //事务执行中
                    jdbcTemplate.execute("insert into user(id,username,password) values(1,1,1)");
                    System.out.println("事务执行中---》"+getCount());
                    //回滚W
                    transactionStatus.setRollbackOnly();
                }
            });
            System.out.println("事务执行后---》"+getCount());
            
        }
        
        //统计数据条数
        public long getCount() {
            return jdbcTemplate.queryForObject("select count(*) from user", Long.class);
        }
    
    }

    7.申明式事务

    8.基于注解的配置方式

    开启事务注解的方式 @EnableTransactionManagement

    @Transactional

    1. transactionManage
    2. propagation
    3. isolation
    4. timeout
    5. readOnly
    6. 判断回滚

    9.代码参考:https://gitee.com/mrc1999/SpringBoot-study-book/tree/master/04TransactionTemplate

  • 相关阅读:
    用迭代法求x=a−−√。求平方根的迭代公式为 xn+1 = 12(xn + axn) 要求前后两次求出的x的差的绝对值小于10−5
    C 数组
    fofa自动化爬虫脚本更新+详解
    c# winfrom接收http协议body数据
    FLW要求
    modbus工具问题
    2020年总结
    WIFI K型热电偶传感器
    泛海三江烟感JTY-GD-H361 V2.7
    工位终端
  • 原文地址:https://www.cnblogs.com/ChromeT/p/10979684.html
Copyright © 2011-2022 走看看