socue.github.io

Spring事务分类

1.声明事务
2.编程事务 #### Spring事务原理
AOP 技术 环绕通知进行拦截
打开链接
开启事务
进行CRUD操作
提交/回滚事务
关闭链接 #### 使用Spring事务主义事项
不要try,为什么不要try,因为要将异常抛出给外层。

例子

Mapper.java

@Mapper
public interface UserMapper {
    @Insert("INSERT INTO USERS(username,avg) VALUES (#{username},#{avg})")
    int insterUser(@Param("username") String username,@Param("avg") Integer avg);
}

UserSerive.java

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    @Transactional  //开启注解
    public int insterUser(String username,Integer avg){
        int insertResult = userMapper.insterUser(username,avg);
        int i = 1/avg;    //抛出异常
        System.out.println("#############inster:" + insertResult );
        return insertResult;
    }
}

UserController.java

@RestController
public class UserController {

    @Autowired
    private UserService userService;
    
    @RequestMapping("/insterUser")
    public int insterUser(String username,Integer avg){
        System.out.println(username+"|"+avg);
        return userService.insterUser(username,avg);
    }
}