什么是事务?
事务是由N步数据库操作序列组成的逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行。
事务的特性:
原子性、事务是应用中不可分的最小执行体。
一致性、事务执行的结果,须使数据从一个一致性状态,变为另一个一致性状态。
隔离性、各个事务的执行互不干扰,任何事物的内部操作对其他事务都是隔离的。
持久性、事务一旦提交,对数据所做的任何改变都要记录到永久存储器中。
事务的隔离性:
第一类更新丢失、第二类更新丢失。
脏读、幻读、不可重复读。
第一类更新丢失:某一个事务的回滚,导致另一个事务已更新的数据丢失。
第二类更新丢失:某一个事务的提交,导致另一个事务已更新的数据丢失。
脏读:某一个事务,读到了另一个事务未提交的数据。
不可重复读:某一个事务,对同一个数据前后读取的结果不一致。
幻读:某一个事务,对同一个表前后查询的行数不一致。
隔离级别:
Read Uncommitted:读未提交
Read Committed:读已提交
Repeatable Read:可重复读
Serializable:串行化
spring 事务管理:spring支持编程式事务管理和声明式事务管理2种方式。