首页 > 编程语言 >java 异常处理,事务管理,事务共用,事务传递

java 异常处理,事务管理,事务共用,事务传递

时间:2023-06-24 13:11:44浏览次数:57  
标签:事务管理 事务 java 异常 Transactional Propagation REQUIRES

异常处理,事务管理,事务共用,事务传递

1.在每个controller 添加try catch
2.定义全局异常处理器

/**
 * 全局异常处理器
 */

@RestControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)//捕获所有异常
    public Result ex(Exception ex){
        ex.printStackTrace();
        return Result.error("对不起,操作失败,请联系管理员");
    }

}
  1. 事务处理

事务是一组操作的集合,要么都操作成功,要都失败。

3.1操作:

1.开启事务:start transaction/begin
2.提交事务:commit
3.回滚事务:rollback

3.2 @Transactional: spring 事务关联,事务可以作用在类上,也可以作用在方法上

3.3 #spring 事务管理日志 配置 application.xml

logging:
  level:
    org.springframework.jdbc.support.JdbcTransactionManager:dubug

3.4 事务管理:
1.事务进阶:

rollbackFor: 对所有异常回滚
propagation:事务传递配置项

运行时 异常才会回滚

3.5.rollbackFor=Exception.class;Propagation.REQUIRES;Propagation.REQUIRES_NEW 的区别

@Transactional(rollbackFor=Exception.class) //但配置了这个,对所有异常回滚:
  @Transactional(propagation = Propagation.REQUIRES) //但配置了这个,会共用上下方法的同一个事务:默认的
  @Transactional(propagation = Propagation.REQUIRES_NEW) //但配置了这个,会开启新的事务:
   @Override
   public void delete(Integer id) {
       deptMapper.deleteById(id);
   }

方法都添加事务 @Transactional,默认是共享同一个事务:@Transactional(propagation =ropagation.REQUIRES)

标签:事务管理,事务,java,异常,Transactional,Propagation,REQUIRES
From: https://www.cnblogs.com/chenshaojun2008/p/17500949.html

相关文章

  • JavaScript 之 高级程序设计 基础篇 (一)
    导读此篇文章为作者拜读JavaScrpit第四版(红宝石)的笔记内容、适用于有经验的程序员阅读;作者java开发出身。在之前前后端不分离的时代使用esayUIJQuery的时代经常写js相关代码。现在前后端分离的时代;前端工程日新月异、各种框架层出不穷;万变不离其中;学好js才是根本;很喜欢并......
  • JavaScript基础
    JavaScript基础简介JavaScript是由网景公司发明,起初命名为LiveScript,后来由于SUN公司的介入更名为了JavaScript为了确保不同的浏览器上运行的JavaScript标准一致,所以几个公司共同定制了JS的标准名命名为ECMAScriptJS的特点解释型语言类似于C和Java的语法结构动态语言......
  • 如何直接通过 ABAP 调试器将 SE16 事务码里无法直接查看的内容下载到本地试读版
    在SAPABAP系统里,我们可以使用事务码SE16查看数据库表的内容。这个事务码很方便,但是有一些局限性,比如类型为RAWSTRING的二进制内容,无法在这个事务码里方便的查看。下面的数据库表ZFILE是一个例子:字段VALUE存放的是文件的二进制内容。我们使用事务码SE16查看该文件的内......
  • 详解Java反射机制
    前言反射(Reflection)是Java程序开发语言的特征之一,它允许运行中的Java程序对自身进行检查,并能直接操作程序的内部属性和方法。主要有两种方式:一种是“传统的”RTTI,它假定我们在编译时已经知道了所有的类型;另一种是“反射”机制,它允许我们在运行时发现和使用类的信息。本篇就......
  • 无处不在 | 亚马逊云科技的 Java 生态
    Java自诞生以来就一直是热门的编程语言。得益于丰富的生态以及完善维护的包和框架,Java拥有着庞大的开发者社区。这个1995年诞生的计算机语言,以“一次编写,到处运行”的跨平台特性以及面向对象、泛型编程等现代语言的特性迅速成为了企业级应用乃至移动应用开发的首选。亚马逊......
  • JAVA笔记
    三元运算符x?y:z如果x==ture,则结果为y,否则结果为zJava中的三元运算符x?y:z可以简化一些if/else语句的书写,其中x是一个布尔表达式,如果x为true,则返回y,否则返回z。该运算符也称为条件运算符或三目运算符,因为它由三个操作数组成。例如,下面的代码使用if/els......
  • java编程开发之若依vue框架 --- 后台开发
    分页实现前端基于element封装的分页组件 pagination(opensnewwindow)后端基于mybatis的轻量级分页插件pageHelper(opensnewwindow)#前端调用实现1、前端定义分页流程  #后台逻辑实现@PostMapping("/list")//定义/list接口,用于查询出列表@ResponseBody//返......
  • java编程开发之若依vue --- 部署
      部署的大致步骤0.配置环境,jdk下载安装配置环境变量,Mysql下一步就好记住用户名和密码,Redis下载win版本运行即可,Maven下载配置环境变量修改本地库存放位置,Node下一步就好设置下淘宝的镜像源。JDK>=1.8(推荐1.8版本)Mysql>=5.7.0(推荐5.7版本)Redis>=3.0Maven>......
  • Java 程序控制结构
    Java程序控制结构1.顺序结构即按照从上到下依次执行到main()方法结束2.分支结构单分支(if)双分支(if-else)多分支(ifelseif...)嵌套分支(分支里面嵌套分支,建议不超过3层)Switch分支switch(表达式)case常量1:...;break;...............................
  • JAVA面向对象程序设计_PTA题目集07-11总结分析
    JAVA面向对象程序设计_PTA题目集07-11总结分析前言:天将降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为。所以动心忍性,增益其所不能。随堂检测在最末浅析。 题目集七:知识点:类间设计,类的设计。题量:一题,菜单计价五。难度:八个满分。 题目集八:知识点:类......