[马云]如何利用Java代码模拟银行转账这一功能?( 二 )
所以为了解决这个问题 , 数据库就引入了事务的概念 。
事务指的是逻辑上的一组操作 , 组成这组操作的各个单元要么全都成功 , 要么全都失败 。
以上面的这个例子来说明就是:
- 有两个操作:转出账户和转入账户 。
- 转出成功 , 转入成功 , 就成功了 。
- 成功了 , 事务提交 , 转账完成 。
- 转出成功 , 转入失败 , 那对不起 , 全部失败 。
- 转出失败 , 转入成功 , 也还是失败 。
- 失败了 , 事务回滚 , 回到转账前的状态 。
①mysql中开启事务
start transaction;
transaction , 翻译过来就是事务的意思 。
②mysql中事务提交
commit;就一个单词 , 翻译过来就是提交的意思 。
③mysql中事务回滚
rollback;翻译过来也就是回滚的意思 , 回滚是什么意思呢?就可以理解成回到开启事务时的状态 。
2Java中的事务
①Java中开启事务
Java中连接接口collection有一个api叫setAutoCommit()
翻译过来就是设置自动提交 , 顾名思义也就是说:
如果是true , 事务会自动提交;
如果是false , 事务不自动提交 。
将其设置成false , 我们手动提交 。
②Java中提交事务
collection也有一个commit()方法 , 顾名思义也就是提交的意思 。
③Java中提交事务
collection还有一个rollback()方法 , 顾名思义也就是回滚的意思 。
好 , 现在代码编写完:
- 如果有异常 , 执行③事务回滚 , 数据库数据不变 。
- 如果没有异常 , 执行②事务提交 , 数据库数据改变
就是哪怕没有事务回滚 , 如果有异常 , 因为根本没有执行到事务提交 , 数据库数据还是不会改变的 。
也就是说这个例子中 , 就算没有事务回滚 , 结果也没影响 。
我尝试着将第一步中设置成自动提交 , 然后出现异常事务回滚 , 发现也没用 。
所以总结就是:
事务提交前出现异常 , 就不提交了 , 那么回滚岂不是没用?
事务提交了 , 说明没错 , 那么回滚岂不是还是没用?
那么问题来了 , 回滚到底有什么用呢?
这个问题我网上查询了下 , 暂时还不太清楚 , 它肯定是有它的应用场景的 , 只不过说我的水平有限 , 暂时还没有发现 。
最后:谢谢你的观看 。
【[马云]如何利用Java代码模拟银行转账这一功能?】如果可以的话 , 麻烦帮忙点个赞 , 谢谢你 。
推荐阅读
- 精选泛科技|结果如何?,一加8续航遭质疑:上半年最全机型横评出炉
- 科学家■如果宇宙由奇点大爆炸而来,那么奇点又是如何来的?
- :当年阿里的前台,马云给她0.2%股份,20年过去她怎样了?
- 「三星」拒绝马云王健林800万年薪招揽,一手创建美团的小伙,如今怎样了
- 小强幽默|公司如何做好网络营销推广找客户,园林花卉行业企业怎么利用网络推广引流获客
- 风雨同进步|公司如何做好网络营销推广找客户,旅游行业企业怎么利用网络推广引流获客
- 互联网乱侃秀|不想当首富,想要低调,马云躺赢?,黄峥主动散财700亿
- #贾跃亭#全是套路!过去三年贾跃亭与孙宏斌是如何联合“布局”的
- 影视凡巧|银行这下坐不住了,马云再放“大招”?支付宝又一功能上线
- 大头哥哥说娱乐|支出金额惊人,却被夸:是位圣人,马云的支付宝账单被曝光