模拟银行账户转账业务

一、需求分析

需求:
实现任意两个账户间转账操作,要求当转账过程出现异常时,转账方与被转账方的转账操作同时失败。

实现:
Spring 事务,在数据层或业务层保障一系列的数据库操作同成功同失败。

分析:
① 数据层提供基础操作,指定账户减钱,指定账户加钱;
② 业务层提供转账操作,调用减钱与加钱操作;
③ 提供两个账号和操作金额执行转账操作;
④ 程序正常执行时账户金额 A 减 B 加没有问题,当程序出现异常后,也要保证双方账户加减操作的一致性,也就是说异常出现前后的业务都应是失败的状态;
⑤ 基于 Spring 整合 MyBatis 环境搭建上述操作。

二、核心代码

1. 业务层添加 Spring 事务管理
//@Transactional标签添加事务管理
@Transactional
public interface AccountService {
    public void transfer(String outUname, String inUname, int money);
}

① Spring 注解式事务通常添加在业务层接口中,而不会添加到实现类中,为了降低耦合;
② 注解式事务可以添加到业务方法上表示当前方法开启事务,也可以添加到接口上表示当前接口所有方法开启事务。

2. 配置类中设置事务管理器
 //设置事务管理器
@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource) {
    DataSourceTransactionManager ptm = new DataSourceTransactionManager();
    ptm.setDataSource(dataSource);
    return ptm;
}
    

在这里插入图片描述

事务管理器要根据实现技术进行选择,MyBatis 框架使用的是 JDBC 事务!

3. 开启注解式事务驱动

@EnableTransactionManagement 注解用于开启注解式事务驱动。

在这里插入图片描述

三、相关截图

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栈老师不回家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值