Java SpringBoot 中的操作事务

 更新时间:2022年09月13日 09:17:40   作者:Java中文社群​​​​​​​  
这篇文章主要介绍了Java SpringBoot 中的操作事务,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

前言:

在 Spring Boot 中操作事务有两种方式:编程式事务或声明式事务,接下来我们一起来看二者的具体实现。

1.编程式事务

在 Spring Boot 中实现编程式事务又有两种实现方法:

  • 使用 TransactionTemplate 对象实现编程式事务;
  • 使用更加底层的 TransactionManager 对象实现编程式事务。

它们的具体实现代码如下。

1.1 TransactionTemplate 使用

要使用 TransactionTemplate 对象需要先将 TransactionTemplate 注入到当前类中 ,然后再使用它提供的 execute 方法执行事务并返回相应的执行结果,如果程序在执行途中出现了异常,那么就可以使用代码手动回滚事务,

具体实现代码如下: 

1.2 TransactionManager 使用

TransactionManager 实现编程式事务相对麻烦一点,它需要使用两个对象:TransactionManager 的子类,加上 TransactionDefinition 事务定义对象,再通过调用 TransactionManager 的 getTransaction 获取并开启事务,然后调用 TransactionManager 提供的 commit 方法提交事务,或使用它的另一个方法 rollback 回滚事务,

它的具体实现代码如下: 

 从上述代码可以看出,使用编程式事务更加灵活,但写法比较麻烦

2.声明式事务

声明式事务的实现比较简单,只需要在方法上或类上添加 @Transactional 注解即可,当加入了 @Transactional 注解就可以实现在方法执行前,自动开启事务;在方法成功执行完,自动提交事务;如果方法在执行期间,出现了异常,那么它会自动回滚事务。 

它的具体使用如下: 

 当然,@Transactional 支持很多参数的设置,它的参数设置列表如下: 

 参数的设置方法如下: 

总结

本文我们介绍了两种事务的实现方式:编程式事务或声明式事务。其中编程式事务又分为两种实现:使用 TransactionTemplate 对象或更加底层的 TransactionManager 对象分别实现编程式事务,它们的优点是灵活性更高,可以在任何代码片段上添加事务;而声明式事务的实现更加简单,只需要在类或方法上添加 @Transactional 注解即可实现事务的自动开启和提交(以及回滚)。

到此这篇关于Java SpringBoot 中的操作事务的文章就介绍到这了,更多相关SpringBoot 操作事务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaGUI常用窗体组件与面板使用详解

    JavaGUI常用窗体组件与面板使用详解

    GUI即图形用户界面,它是基于图形的界面,windows就是一个图形用户界面的操作系统,而DOS是基于命令提示符的操作系统,GUI编程就是编出一个图形用户界面的软件,它使用图形的方式,以菜单、按钮、表示、图文框等标准界面元素组成的用户操作界面
    2023-03-03
  • Java Jackson之ObjectMapper常用用法总结

    Java Jackson之ObjectMapper常用用法总结

    这篇文章主要给大家介绍了关于Java Jackson之ObjectMapper常用用法的相关资料,ObjectMapper是一个Java库,用于将JSON字符串转换为Java对象或将Java对象转换为JSON字符串,需要的朋友可以参考下
    2024-01-01
  • Mybatis 动态SQL的几种实现方法

    Mybatis 动态SQL的几种实现方法

    这篇文章主要介绍了Mybatis 动态SQL的几种实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Maven仓库分类的优先级

    Maven仓库分类的优先级

    本文主要介绍了Maven仓库分类的优先级,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • SpringBoot实现WebSocket全双工通信的项目实践

    SpringBoot实现WebSocket全双工通信的项目实践

    本文主要介绍了SpringBoot实现WebSocket全双工通信的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Springboot访问html页面步骤解析

    Springboot访问html页面步骤解析

    这篇文章主要介绍了Springboot访问html页面过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Java格式化输出printf()解读

    Java格式化输出printf()解读

    这篇文章主要介绍了Java格式化输出printf()解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 深入理解spring boot 监控

    深入理解spring boot 监控

    今天通过本文给大家介绍关于spring boot 监控的相关知识,引入jar包的实例代码文中也给大家详细介绍,对spring boot 监控相关知识感兴趣的朋友一起看看吧
    2021-10-10
  • Java将日期类型Date时间戳转换为MongoDB的时间类型数据

    Java将日期类型Date时间戳转换为MongoDB的时间类型数据

    今天小编就为大家分享一篇关于Java将日期类型Date时间戳转换为MongoDB的时间类型数据,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • 详解spring cloud分布式日志链路跟踪

    详解spring cloud分布式日志链路跟踪

    这篇文章主要介绍了详解spring cloud分布式日志链路跟踪,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07

最新评论