今天是刘小爱自学Java的第70天。
谢谢你的寓目,谢谢你。
话不多说,开始今天的学习:
转账,相信基本都接触过,无论是线下用银行卡转账还是线上用手机转账,本质上都是差不多的。一、转账案例
需要两个账户:刘小爱账户和刘妈妈账户;刘小爱账户转出;刘妈妈账户转入。
刘小爱要给刘妈妈转账,究竟要攒着未来娶媳妇,emm……就转1000吧(看来是娶不到媳妇了……)
在数据库中用sql语句编写一个账户信息表,同时也是对sql语法的一次回首:
固然,账户信息表肯定是在银行的数据库中的,而且是最重要的一个存在,会严加防范。
我这边只是模拟这个案例,所以在自己的数据库上建立了一个账户信息表。
表很简朴:主要两个属性,账户名和账户余额。
现在编写代码:刘小爱账户给刘妈妈账户转1000刘小爱账户余额淘汰1000刘妈妈账户余额增加1000
凭据代码可拓展性原则,并未将账户名,转账金额写死。
①提示用户输入信息
这个原来是应该在网页上面显示信息提醒用户的,可是这块还不会,就用Java中的控制台来模拟。
也就是Scanner这个类的使用。
②从德鲁伊毗连池中获取毗连
这个我们昨天将德鲁伊毗连池封装进工具类JdbcUtil了,所以可以直接用工具类获取毗连。
③转出账户预编译
转出账户名为inName,转出的金额为money。
那么要将数据库中对应账户名的money淘汰对应的金额。
④转入账户预编译
转入账户名为outName,转入金额为money。
那么要将数据库中对应账户名的money增加对应的金额。
代码编写完成,现在再做测试:
指定转出账户为:刘小爱
指定转入账户为:刘妈妈
设定转账金额为:1000二、事务的引入
要知道我们转账本质上是转出方先将钱转到银行,银行再将钱转入到转入方。
这样就会存在一个问题:
好比刘小爱的钱从他的账户中转出去了,可是银行还没有将钱转到刘妈妈的账户中,突然银行发生了突发事故。
至于什么事故,横竖就是没法转钱到刘妈妈账户上了。
用代码模拟这种情况:
上面有异常是直接throws了,现在要自行处置惩罚。
使用IDEA开发工具快捷键Ctrl+Alt+T:可以选择一块代码try……catch