• 基于SpringJDBC的事务(Transaction)处理



    事务可以保障同一个业务中的多次对数据的写操作全部成功,或全部失败,以此保障数据安全。

    所以,某个业务中有超过1次的增/删/改操作,就必须使用事务,例如某个业务中有2次Update操作,或者1次Update加上1次Delete操作,甚至3次Update操作等。

    在使用了SpringJDBC后,如果需要使用事务保障数据安全,只需要在业务方法之前添加`@Transactional`注解即可。

    在SpringJDBC中,事务的操作大致是:

        开启事务:begin
        try {
            执行数据操作,增/改/删
            提交事务:commit
        } catch (RuntimeException e) {
            回滚事务:rollback
        }

    也就是说,当框架以事务的方式执行业务时,将开启事务,如果能正常执行结束,则提交事务,如果执行过程中捕获到`RuntimeException`,则会自动回滚。

    `@Transactional`注解还可以添加在业务类之前,则表示该业务类中所有业务方法都是以事务的方式来执行,通常并不推荐这样处理,不必要的事务对QPS有负面影响。

    还可以在注解中配置`rollbackFor`来确定捕获哪些异常时才会自动回滚事务,例如:

        @Transactional(rollbackFor=ServiceException.class)

    小结:如果某个业务中涉及多次增/删/改,则在业务方法之前添加`@Transactional`注解,并且,在视为错误的操作过程中,必须抛出`RuntimeException`或其子孙类异常。

  • 相关阅读:
    python 之 re模块、hashlib模块
    python 之 random 模块、 shutil 模块、shelve模块、 xml模块
    python 之 time模块、datetime模块(打印进度条)
    python 之 包的使用
    python 之 序列化与反序列化、os模块
    SAP GUI 750 安装包 及 补丁3 共享
    实例:关于ALV控件可编辑的整理
    SAP 文本框实例
    SAP 日志管理
    TO_DATS() AS ABAP_DATE
  • 原文地址:https://www.cnblogs.com/cgy-home/p/11094838.html
Copyright © 2020-2023  润新知