(十四)SpringBoot之事务处理
阅读原文时间:2023年07月10日阅读:1

一、简介

ssh ssm都有事务管理service层通过applicationContext.xml配置,所有service方法都加上事务操作;

用来保证一致性,即service方法里的多个dao操作,要么同时成功,要么同时失败;

springboot下的话,在service方法上加上@Transactional即可

二、案例

package com.shyroke.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.shyroke.dao.UserMapper;
import com.shyroke.entity.UserBean;
import com.shyroke.service.UserService;

@Controller
@RequestMapping(value = "/")
public class IndexController {

@Autowired  
private UserService userService;

@ResponseBody  
@RequestMapping(value="/save")  
public String list() {

    UserBean user1=new UserBean();  
    user1.setUserName("user1");  
    user1.setPassWord("123");

    userService.save(user1);

    return "index";

}  

}

package com.shyroke.service;

import com.shyroke.entity.UserBean;

public interface UserService {

void save(UserBean user1);

}

  在下面的代码中,我们对save方法加上了@Transactional注解,表示使用事务,当有异常抛出时,就会自动回滚。

package com.shyroke.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.shyroke.dao.UserMapper;
import com.shyroke.entity.UserBean;
import com.shyroke.service.UserService;

@Service
public class UserServiceImpl implements UserService{

@Autowired  
private UserMapper userMapper;

@Override  
@Transactional  
public void save(UserBean user1) {

    userMapper.save(user1);

    boolean flag = true;  
    if (flag) {  
    throw new RuntimeException();  
    }

}

}

package com.shyroke.dao;

import org.springframework.data.jpa.repository.JpaRepository;

import com.shyroke.entity.UserBean;

public interface UserMapper extends JpaRepository{

}

  •   结果:

数据库没有数据,说明已经被回滚了。

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章