美文网首页
八、springBoot及简事务操作

八、springBoot及简事务操作

作者: joy_蓝蜘蛛 | 来源:发表于2018-07-04 13:37 被阅读31次

    这里分为三个步骤。
    一、说明概念。
    二、体验一下springMVC中的配制。
    三、然后再用springBoot中的事物。
    3.2、代码说明

    一、说明

    事物就是在同一个操作当中如果整条流程中只要有发生了错误,可以把出错误之前所有的操作进行回滚撤销的操作。

    如有10行代码 在第4行中往数据库中添加了一条数据。但是在第6行发生了异常获错误。有了事务机制后,会撤回之前所有的操作。如果没有任何问题。会在执行完第10行后,统一提交。

    在Spring中,事务有两种实现方式,分别是编程式事务管理和声明式事务管理两种方式。
    编程式事务管理: 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。
    声明式事务管理: 建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。
    声明式事务管理不需要入侵代码,通过@Transactional就可以进行事务操作,更快捷而且简单。推荐使用

    二、体验一下springMVC中的配制

    https://blog.csdn.net/wkl305268748/article/details/77619367/

    三、springBoot中的事物。

    在第七节中的项目之上体验。

    3.1代码

    如果想让一个函数具有事物功能,就在函数上加上注解** @Transactional **

       @Transactional    
        public int insert(User user) {
            int result = userMapper.insert(user);
            log.info(user.toString());
            int a = 2/0;
            return result;
        }
    
    3.2代码说明:
    方法上没有加: ** @Transactional **

    上面函数这行代码,是会往数据添加一条数据.如果没有加上** @Transactional **走到这行代码的进候直接就往数据库中加了一条数据。

     int result = userMapper.insert(user);
    
    方法上加了 ** @Transactional **

    当走到上面这句代码的时候数据库不会急时加上一条数据。要等走完这个方法中所有的代码的时候才会一起提交事务。
    注意
    如果这个函数中任何地方出现了异常。所以对数据库的操作都会回滚。
    所以。在这个函数中不要加任何的try{}catch{}。因为被捕获后是不会产生回滚效果的。

    相关文章

      网友评论

          本文标题:八、springBoot及简事务操作

          本文链接:https://www.haomeiwen.com/subject/pbseuftx.html