Spring事务
1.事务的四大特性(ACID)
●原子性(Atomicity)
共生死,要么全部成功,要么全部失败!
●一致性(Consistency)
事务在执行前后,数据库中数据要保持一致性状态。(如转账的过程 账户操作后数据必须保持一致)
●隔离性(Isolation)
事务与事务之间的执行应当是相互隔离互不影响的。(多个角色对统一记录进行操作必须保证没有任何干扰) , 当然没有影响是不可能的,为了让影响级别降到最低,通过隔离级别加以限制:
- READ_ UNCOMMITTED (读末提交)
隔离级别最低的一种事务级别。在这种隔离级别下,会引发脏读、不可重复读和幻读。 - READ_ COMMITTED (读已提交)
读到的都是别人提交后的值。这种隔离级别下,会引发不可重复读和幻读,但避免了脏读。 - REPEATABLE_ READ (可重复读)
这种隔离级别下,会引发幻读,但避免了脏读、不可重复读。 - SERIALIZABLE (串行化)
最严格的隔离级别。在Serializable隔离级别下, 所有事务按照次序依次执行。脏读、不可重复读、幻读都不会出现。
●持久性(Durability)
事务提交完毕后,数据库中的数据的改变是永久的。
2.事务接口
Spring并不直接管理事务,而是提供了多种事务管理器,他们将事务管理的职责委托给Hibernate或者JTA等持久化机制所提供的相关平台框架的事务来实现。
Spring事务管理器的接口是org.springframework.transaction.PlatformTransactionManager.通过这个接口,Spring 为各个平台如JDBC、Hibernate 等都提供了对应的事务管理器
但是具体的实现就是各个平台自己的事情了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!