今天,我们使用spring框架,在service层模拟银行转账业务
步骤:
1.引入依赖
2.创建账户表
3.创建实体类
4.创建管理连接的工具类ConnectionUtil, 用来实现连接和线程的绑定
5.创建事物管理器,用来实现事物的开启、提交、事物回滚、关闭连接、释放资源
6.创建dao层接口 和实现类
7.创建service层接口和实现类
8.设置配置文件
9.创建测试类
第一步:引入依赖
需要引入的依赖:
spring-context包、spring-test包、commons-dbutils包、mysql-connector包、c3p0工具类包、junit包
第二步;创建账户表
表中设置两个字段,name和money
第三步:创建实体类
声明name和money两个属性,并生成setter / getter方法 和toString方法
第四步:创建管理连接的工具类ConnectionUtil, 用来实现连接和线程的绑定
第五步;创建事物管理器,用来实现事物的开启、提交、事物回滚、关闭连接、释放资源
第六步:创建dao层接口和实现类
*接口
接口中定义两个抽象方法:
1.findByName( String name ) 通过账户名查找账户信息
2.update(Account account) 用来持久化账户信息,将发生变化的账户,保存到数据库
如下图:
*实现类
1.实现接口中的方法
2.获取连接对象
3.执行sql操作
如下图;
第七步:创建service层接口和实现类
接口
1.定义抽象方法 transfer (String sendName, String receiveName, Integer money);
方法中的三个参数分别是:转出账户名,转入的账户名,转账金额
如下图:
实现类
1.实现接口中的方法
2.创建事物管理对象
3.创建dao层类对象
4.开启事物
5.调用dao层的findByName( String name) 方法:分别获得转出账户 和 接收账户
6.设置转出 和 接收账户的余额
7.调用dao层的update(Account account)方法:更新数据库中的转出账户
8.模拟转账时的异常
9.调用dao层的update(Account account)方法:更新数据库中的 接收账户
10.提交事务
11.异常情况事务回滚
12.释放资源
如下图:
第八步:创建配置文件
1.开启注解包
2.创建queryRunner对象
3.向queryRunner对象中注入数据源
4.创建数据源对象
如下图:
第九步:编写测试类