SpringBoot使用事务

事务是很多项目中需要注意的东西,有些场景如果没有加事务控制就会导致一些脏数据进入数据库,本文简单介绍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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏GAN&CV

tensorflow ‘/biases/Adam_1’not in ckpt file

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25737169/article/d...

1185
来自专栏简书专栏

基于tensorflow、CNN、清华数据集THUCNews的新浪新闻文本分类

tensorflow是谷歌google的深度学习框架,tensor中文叫做张量,flow叫做流。 CNN是convolutional neural netwo...

1081
来自专栏大数据风控

R中如何利用余弦算法实现文章的自动摘要

自动摘要 自动摘要,就是利用计算机自动地从原始文献中提取摘要。 例如百度经验中的经验摘要,简短的描述了该经验的主要解决问题。 自动摘要的算法原理 余...

19710
来自专栏机器之心

教程 | 如何在Python中快速进行语料库搜索:近似最近邻算法

3024
来自专栏量子位

简化深度学习实践流程:新鲜出炉的TensorFlow项目模板来了

林鳞 编译自 GitHub 量子位 出品 | 公众号 QbitAI 新的TensorFlow项目模板来了。 昨天,用户mrgemy95在Reddit上发帖,称这...

3684
来自专栏人工智能LeadAI

TensorFlow的Debugger调试实例

之前有翻译整理过关于TensofFlow的Debugger的简单教程,具体内容见这里(https://www.jianshu.com/p/9fd237c7fda...

3669
来自专栏生信宝典

DESeq2差异基因分析和批次效应移除

1K10
来自专栏简书专栏

基于jieba、TfidfVectorizer、LogisticRegression的文档分类

jieba中文叫做结巴,是一款中文分词工具,官方文档链接:https://github.com/fxsjy/jieba TfidfVectorizer中文叫做...

2323
来自专栏HansBug's Lab

【LATEX】个人版latex论文模板

以下是我的个人论文模板,运行环境为Xelatex(在线ide:Sharelatex.com) 鉴于本人常有插入程序的需求,故引用了lstlisting \Req...

31212
来自专栏深度学习那些事儿

Pytorch中Tensor与各种图像格式的相互转化

在pytorch中经常会遇到图像格式的转化,例如将PIL库读取出来的图片转化为Tensor,亦或者将Tensor转化为numpy格式的图片。而且使用不同图像处理...

1.5K5

扫码关注云+社区