SpringBoot入门学习(十)~~ 事务配置

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

目录

SpringBoot事务配置

一、Mybatis整合Spring的事务配置方式

二、入门小小案例~~保存用户信息

三、注解方式配置Mybatis的事务


SpringBoot事务配置

  • 一、Mybatis整合Spring的事务配置方式

回顾Mybatis配置事务有两种方式,一种是注解方式;另一种是配置文件的方式。注解方式首先开启注解扫描,然后在service上使用@Transactional注解即可。如果是配置文件方式的话,利用aop特性,在service请求,引入tansactionManager的事务管理机制。

这里的话,我只介绍使用注解的方式。因为,xml的方式是通过

@ImportResource的注解引入xml的配置文件,实现这种配置文件+注解两种方式共存情况,在SpringBoot开发中,更加倾向于使用注解的方式,而不用xml。

 

  • 二、入门小小案例~~保存用户信息

在原来的基础之上进一步开发

1、在UserMapper开发一个插入数据的方法

@Repository
public interface UserMapper {

   
@Select("select * from user")
    List<User> list();
   
@Insert("insert into user(email,fullname,isadmin,password) values (#{email},#{fullname},#{isadmin},#{password})")
   
void save(User user);

}

2、编写IUserService接口+UserServiceImpl时限内

public interface IUserService {

   public List<User> list();

  

   public void save(User user);

}

 

 

@Service

  public class UserServiceImpl implements IUserService {

   @Autowired

   private UserMapper userMapper;

  

   @Override

   public List<User> list() {

      return userMapper.list();

   }

  

   @Override

   public void save(User user) {

      userMapper.save(user);

   }

}

 

 

3、编写控制器类,直接调用保存数据方法,返回“保存成功”

@RequestMapping("/save")

  @ResponseBody

  public String save(){

   User user = new User();

   user.setEmail("[email protected]");

   user.setFullname("yansha");

   user.setIsadmin(true);

   user.setPassword("123456");

   userService.save(user);

   return "保存成功";

}

4、启动项目,访问/user/save方法,查看数据库。

表示数据插入成功了。接下来模拟异常的情况出现!

 

5、修改保存数据代码,故意除0

@Override

  public void save(User user) {

   userMapper.save(user);

   int i = 10 % 0;

}

 

6、启动项目,访问/user/save方法,效果图如下:

查看数据库,是否保存了数据:

说明在默认情况下是没有事务的。

 

  • 三、注解方式配置Mybatis的事务

  1. 开启注解扫描驱动,对应SpringBoot中的@EnableTransactionManagement
@SpringBootApplication

@MapperScan("com.example.demo.mybatis.mapper")

  @EnableTransactionManagement

  public class MybatisApplicatioin {

   public static void main(String[] args) {

      SpringApplication.run(MybatisApplicatioin.class,args);

   }

}
 
 

2、在service类上加上,事务注解

@Transactional即可
@Service

@Transactional

  public class UserServiceImpl implements IUserService {

   @Autowired

   private UserMapper userMapper;
   …………………………………….
}

 

重复上面的实验,尝试在异常的情况下去保存

发现在异常的情况下已经不插入数据了。

 

【总结:】

       其实呢!在SpringBoot默认已经启动了注解驱动扫描。也就是我们不用再Application中配置

@EnableTransactionManagement

直接在需要启动事务的类文件上打上@Transactional注解即可

猜你喜欢

转载自blog.csdn.net/xiaozhegaa/article/details/82912501
今日推荐