事务的四种隔离级别和七种传播行为
要想在Spring中使用事务,就需要先了解事务 1.什么是事务? 事务(TRANSACTION) 是作为单个逻辑工作单元执行的一系列操作。 多个操作作为一个整体向系统提交,要么都执行,要么都不执行。 事务是一个不可分割的逻辑单元。 2.事务的特性(ACID) 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 一致性(Consistency) 事务前后数据的完整性必须保持一致。 隔离性(Isolation) 事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。 持久性(Durability) 持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响 3.什么是脏读,不可重复读,幻读? 脏读: 简单来说,就是一个事务读取到了另一个事务未提交的数据。 不可重复读: 就是说,比如在A事务中进行多次相同的查询,B事务在A事务多次查询之间修改对应表中的数据,导致A事务多次读取的结果不一致。 幻读: 举例来说,就是A事务将表中'性别'列的值都更改为1,B事务在A事务修改之后又添加了一条记录,而'性别'的值为0,回过来A再查询所以的记录时会发现有一条记录的'性别'为0,这种情况就是所谓的幻读 4