今天是刘小爱自学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