事务是很多项目中需要注意的东西,有些场景如果没有加事务控制就会导致一些脏数据进入数据库,本文简单介绍SpringBoot怎样使用事务。

本文使用的是之前整合JPA的文章,具体可以参考 传送门

无论是配置还是pom文件等等,没有任何改变,改变的是测试的controller上面的两个方法,其中一个方法使用了@Transactional注解来进行事务控制。

controller代码如下:

@RestController
public class HouseController { @Autowired
private HouseRepository houseRepository; @GetMapping("/test1")
public String test1(){
houseRepository.save(new House("house1", "100平方米"));
houseRepository.save(new House("house2", "100平方米"));
houseRepository.save(new House("house3", "100平方米"));
houseRepository.save(new House("house444444444", "100平方米"));
houseRepository.save(new House("house5", "100平方米"));
return "success";
} @GetMapping("/test2")
@Transactional
public String test2(){
houseRepository.save(new House("house6", "100平方米"));
houseRepository.save(new House("house7", "100平方米"));
houseRepository.save(new House("house8", "100平方米"));
houseRepository.save(new House("house999999999", "100平方米"));
houseRepository.save(new House("house10", "100平方米"));
return "success";
}
}

test1方法没有加入事务,test2方法加入了事务注解。

启动项目,浏览器访问http://localhost:8888/test1,浏览器如图所示,报错了,因为第四条数据超长了。

查看数据库,可以看到如图:

从上图可以看出,前三条插入成功了,但是后两条都失败了,这并不是我们想要的结果。通常来讲,我们需要的只是成功的话都插入,失败的话都回滚,这时我们调用http://localhost:8888/test2,在次查看数据库,还是之前的三条数据,SpringBoot使用事务建当整合到这里就完成了。

源码下载 :大老杨码云

个人网站:https://www.dalaoyang.cn

关注作者公众号

SpringBoot使用事务的更多相关文章

  1. SpringBoot 注解事务声明式事务

    转载请注明: http://www.cnblogs.com/guozp/articles/7446477.html springboot 对新人来说可能上手比springmvc要快,但是对于各位从sp ...

  2. springboot mybatis 事务管理

    本文主要讲述springboot提供的声明式的事务管理机制. 一.一些概念 声明式的事务管理是基于AOP的,在springboot中可以通过@Transactional注解的方式获得支持,这种方式的优 ...

  3. springboot开启事务支持时报代理错误

    问题:The bean 'xxx' could not be injected as a 'com.github.service.xx' because it is a JDK dynamic pro ...

  4. SpringBoot设置事务管理

    关于事务就不介绍了,前面在研究spring的时候就已经研究过了,参考:https://www.cnblogs.com/qlqwjy/p/7296493.html 这里直接研究springboot中事务 ...

  5. 【SpringBoot系列3】SpringBoot使用事务和AOP

    前言: 因为SpringBoot操作两者实在太简单了,我就放一起来写了. 正文(事务): /** * springboot中运用事务 * 真的超级方便,直接加上注解就ok了,连配置都省了 * @ret ...

  6. Springboot @Transactional 事务不回滚

    一.异常捕获的原因 这里Exception异常,他又分为运行时异常RuntimeException和非运行时异常 可查的异常(checked exceptions):Exception下除了Runti ...

  7. springboot开启事务管理

    spring中开启事务管理需要在xml配置文件中配置,springboot中采取java config的配置方式. 核心是@EnableTransactionManager注解,该注解即为开启事务管理 ...

  8. springboot添加事务

    (转自:http://www.cnblogs.com/xingzc/p/6029483.html) 什么是事务? 我们在开发企业应用时,对于业务人员的一个操作实际是对数据读写的多步操作的结合.由于数据 ...

  9. Springboot下事务管理的简单使用

    关于事务管理的概念这里就不多介绍了,在我的博客“JDBC事务之理论篇”中也有介绍. 关于Spring的事务管理,主要是通过事务管理器来进行的.这里看个Spring事务管理的接口图:(来自博客https ...

随机推荐

  1. mysql数据库1

      desc 表名;  显示表结构

  2. http超文本协议

    当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...

  3. 基于多进程的Tcp套接字服务器

    服务端 import socketfrom multiprocessing import Process def task(c): print('顾客吃点啥') while True: data = ...

  4. 团队开发工具git常用命令

    Git 常用命令 Git配置 git config --global user.name "storm" git config --global user.email " ...

  5. 通过$broadcast或$emit在子级和父级controller之间进行值传递

    通过$broadcast或$emit在controller之间进行值传递,不过这些controller必须是子级或者父级关系, $emit只能向父级parent controller传递事件event ...

  6. 论文阅读笔记十三:The One Hundred Layers Tiramisu: Fully Convolutional DenseNets for Semantic Segmentation(FC-DenseNets)(CVPR2016)

    论文链接:https://arxiv.org/pdf/1611.09326.pdf tensorflow代码:https://github.com/HasnainRaz/FC-DenseNet-Ten ...

  7. Exchange Server Notes

    以下信息来自Option响应: HTTP/1.1 200 OK Cache-Control: private Allow: OPTIONS,POST Server: Microsoft-IIS/7.0 ...

  8. mac下安装Brew 警告:Warning: /usr/local/bin is not in your PATH.

    终端输入命令 export PATH=/usr/local/bin:$PATH

  9. https://www.cnblogs.com/zoro-robin/p/6110188.html

    https://www.cnblogs.com/zoro-robin/p/6110188.html https://blog.csdn.net/kongxx/article/details/65435 ...

  10. weixinShare.js / 极简微信分享插件

    weixinShare.js / 极简微信分享插件 / 版本:0.1 这是一个很简单.很实用的微信分享插件,无需jQuery,只需要在网页里加入一行JS代码,即可自动识别微信浏览器并启动微信分享的提示 ...