SSM @Transactional 事务控制

第一步:
在这里插入图片描述
第二步:
在这里插入图片描述
第三步:
在这里插入图片描述
代码:

spring.datasource.driver-class-name =com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/ssm_in?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
#使⽤阿⾥巴巴druid数据源,默认使⽤⾃带的
#spring.datasource.type =com.alibaba.druid.pool.DruidDataSource
#开启控制台打印sql
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

第四步:
在这里插入图片描述

在这里插入图片描述

测试:
修改添加错误:
在这里插入图片描述

即使发生错误依旧插入数据
在这里插入图片描述

在这里插入图片描述

第五步:(开启事务)
在这里插入图片描述
在这里插入图片描述
测试:
产生报错显示插入成功,但是数据库没有添加数据
在这里插入图片描述
在这里插入图片描述

相关类的创建:
User:

public class User {
    private int id;
    private String phone;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

UserController:

@RestController
@RequestMapping("api/v1/user")
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("save")
    public Object save(){
        User user=new User();
        user.setName("小帅");
        user.setPhone("56161999");
        userService.save(user);
        return user;
    }
}

UserService

public interface UserService {

    int save(User user);
}

UserServiceImpl

@Service
@Transactional
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public int save(User user) {
        userMapper.save(user);
        int i=2/0;
        return 1;
    }
}

UserMapper

@Repository
public interface UserMapper {

    @Insert("insert into user(name,phone) values(#{name},#{phone})")
    int save(User user);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值