仅是个人笔记理解,如有问题,请指出,谢谢
什么是事务
官方解答:一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)
另类解答:其实我们就可以形象的理解成某一个事,比如说我们点击输出了hello word 或者点击之后读取了数据库的数据,这些都是因为我们敲得代码,代码去做了这件事,或者拿现实生活中的别人说你瞅啥,瞅你咋地,之后就发生了一些事情,这一系列操作就是事务,
什么是事务的提交和回滚
事务的提交:比如张三要给李四转钱,这是一个转钱的故事–也是转钱的事情(事务),张三转给了李四500,李四成功接收到了500,那这个时候,就要发布事务的提交,提交给系统,证明两个人确实交易成功了
事务的回滚:张三又要给李四转钱,转了500,就在张三点击确定的时候,突然停电了,那程序还没执行完毕,也就是说,钱虽然张三已经转出去了,但是李四却没接收到,这个时候,张三的500就凭空消失了,没办法就这样
但是有了事务回滚,再转账时,遇到停电,系统检测到了错误,啪,进行事务归滚,即使停电,张三转出的钱还会回到张三的账户内
编程式事务:
整个事务都是程序员自己写的,比如转账时遇见的错误还有,如果不出错就自己提交,如果出错就回滚,这些代码都是程序员自己手敲代码完成的,这就是编程式事务
声明式事务:
整个事务由其他技术或者框架帮助我们处理,我们只进行配置,然后伸手就拿来使用就行了,比如Spring TX