事务管理

在程序进行逻辑操作的时候,往往会对数据库进行几次操作,但是有时候会造成某一次操作失败,导致产生了不合适的数据。
使用事务处理,当进行多次对数据库操作的时候其中一次执行失败的时候,则全部不进行操作。


此处案例结合之前的几篇文章进行处理

  1. 创建service类(已添加事务管理注解)

    package com.example.demo2;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import org.springframework.transaction.annotation.Transactional;
    
    import java.util.ArrayList;
    import java.util.List;
    
    @Service
    public class GirlServer {
        @Autowired //自动注入
        private GirlRepo girlRepo;//此处的类已经在前面的学习笔记中写过
    
        @Transactional //事务注解
        public void InsertTwoGirl(){
            Girl a = new Girl();//此处的类已经在前面的学习笔记中写过
            a.setAge(16);
            a.setUserName("12345");
            a.setPassword("12345");
            girlRepo.save(a);
    
            Girl b = new Girl();
            b.setAge(25);
            b.setUserName("321656");
            b.setPassword("321656");
            girlRepo.save(b);
        }
    }
    
    
  2. 添加事务管理注解
    在创建的项目中 xxxApplication.java 类中开启事务管理 @EnableTransactionManagement ,在上面的service类中已经添加了 @Transaction 注解

  3. 编写测试代码

    @GetMapping("/addTwoGirl")
        public void addTwoGirl(){
            girlServer.InsertTwoGirl();
        }
    


    访问地址:http://127.0.0.1:8088/addTwoGirl 执行

  4. 数据库设置

    emmmm......此处的Girl....插入......是因为在imooc看的视频教程,莫名的就开了一把车.....请忽略.....

    数据库必须支持 事务管理,类型为 InnoDB
    数据库中girl表的userName字段的限制长度为5,
    不使用事务,则会因一条数据长度不够只插入一条数据
    使用事务,则也会因数据长度不够而插入失败,此时数据库没有插入一条数据。

最后修改:2019 年 03 月 18 日
如果觉得我的文章对你有用,请随意赞赏