Spring 事务上文 使用SpringJDBC
1、JDBC事务控制
? 不管你现在使用的是那一种ORM开发框架,只要你的核心是JDBC,那么所有的事务处理都是围绕着JDBC开展的,而JDBC之中的事务控制是由Connection接口提供的方法:
在程序的开发之中事务的使用是存在有
- 1、关闭自动事务提交:connection.setAutoCommit(false);
- 2、事务手工提交: connection.commit();
- 3、事务回滚: connection.rollback();
前提的
:如果某一个业务现在需要同时执行若干条数据更新处理操作,这个时候才会使用到事务控制,除此之外是不需要强制性处理的 。
文章插图
按照传统的事务控制处理方法来讲一般都是在业务层进行处理的,而在之前分析过了如何基于AOP 设计思想采用1.1、ACID事务原则ACID主要指的是事务的四种特点:动态代理
设计模式实现的事务处理模型,这种操作可以在不侵入业务代码的情况下进行事务的控制,但是代码的实现过程实在是繁琐,现在既然都有了AOP处理模型
了,所以对于事务的控制就必须有一个完整的加强 。
原子性(Atomicity)、一致性(Consistency)、隔离性或独立性(lsolation)、持久性(Durabilily)
四个特征:2、Spring事务架构
- 原子性(Atomicity):整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节 。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样;
- 一致性(Consistency):一个事务可以封装状态改变(除非它是一个只读的) 。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少;
- 隔离性(lsolation):隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作 。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统;
- 持久性(Durability):在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被
回滚
。
Spring事务是对已有JDBC事务的进一步的包装型处理,所以底层依然是JDBC事务控制
,而后在这之上进行了更加合理的二次开发与设计,首先先来看一下Spring 与JDBC事务之间的结构图 。
文章插图
? 只要是说到了事务的开发,那么就必须考虑到ORM组件的整合问题各类的ORM开发组件实在是太多了,同时Spring在设计的时候无法预知未来,那么这个时候在Spring 框架
里面就针对于事务的接入提供了一个开发标准
。
? Spring事务的核心实现关键是在于:PlatformTransactionManager
文章插图
通过以上的代码可以发现,PlatfrmTransactionManager接口存在有一个TransactionManager父接口,下面打开该接口的定义来观察其具体功能 。
文章插图
? 在现代的开发过程之中,最为核心的事务接口主要使用的是PlatformTransactionManager(这也就是长久以来的习惯),在Spring最早出现声明式事务的时候,就有了这个处理接口了 。在进行获取事务的时候可以发现getTransaction()方法内部需要接收有一个TransactionDefinition接口实例,这个接口主要定义了经验总结扩展阅读
- 可爱在性感面前一文不值是什么意思?
- 一文带你读懂小米手环6和7的区别 小米手环7比6多了什么功能
- 教你搞定iPhone手机通话音量小的问题 苹果xr声音小怎么解决方法
- 一文看懂华为充电新技术 华为mate30支持无线充电吗
- 一键搞定OPPO手机微信支付的快速通道 oppo手机扫一扫在哪里
- 苹果如何录入nfc门禁卡 (一文了解iPhone手机添加门禁卡的方法)
- 教你一招搞定手机音量问题 苹果手机声音小怎么解决
- 搞定小米手机死机的方法 小米12pro屏幕死机怎么解决
- 千元搞定大内存高性能,别错过4款 一千左右性价比高的手机
- 一指禅搞定手机插入和调整单元格