springboot结合mybatis实现插入

我们知道,操作数据库时对于除了查询之外的更新操作,需要考虑到的事务的问题,在springboot中是如何来控制事务的呢?或者说在springboot中常用的控制事务的方法是什么呢?我们先来看一下不使用事务的效果,当然大家都知道下面这段代码的结果是什么,下面贴出service层的代码:

@Override 
	public void insertOneUser() {
		Map<String, Object> paramMap=new HashMap<>();
		paramMap.put("userName", "测试springboot结合mybatis插入");
		userMapper.insertOneUser(paramMap);
		System.out.println(1/0);
		paramMap.put("userName", "测试springboot结合mybatis插入2");
		userMapper.insertOneUser(paramMap);
	}

当调用这个方法的时候,报了意料之中的错误:

image.png

数据库之中呢,插入了一条数据

image.png

很明显,这不是我们想要的结果吧,怎么控制事务呢?再简单也不过了,只需要在上边service的方法上加上@Transactional注解就完事了,就可以实现共同成功、共同失败的事务效果,即:

@Override  @Transactional

public void insertOneUser() {

Map<String, Object> paramMap=new HashMap<>();

paramMap.put("userName", "测试springboot结合mybatis插入");

userMapper.insertOneUser(paramMap);

System.out.println(1/0);

paramMap.put("userName", "测试springboot结合mybatis插入2");

userMapper.insertOneUser(paramMap);

}

就行了。其实在没有学习springboot之前,我们在学习spring的时候,也学习过在spring中配置事务的方式,如果大家还记得的话,应该知道在spring中有两种配置事务的方式,一种是通过xml,可以参见上篇文章---spring通过xml方式配置事务管理,另外一种是通过注解来配置事务,在上边的例子中我用的就是注解的方式,只是在spring中使用注解的时候我们需要在配置文件里面加入<tx:annotation-driven transaction-manager="txManager" />来告知spring我们将要使用@Transactional注解来管理事务,在springboot中不需要再加这句话了,其实,从这里也可以看得出来,springboot并没有什么新的东西,它只是帮我们包装了spring框架与其他框架的继承,让我们进行更便捷的开发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值