spring 事物的级别_Spring事务的五种事务隔离级别

一、数据库事务的四种隔离级别

JDBC事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。

1. Read uncommitted

无法保证并发事务出现的问题

2. Read committed(只能读取已提交的数据,可避免脏读)

一事务未提交时,不能去读取数据

3. Repeatable read(可避免脏读、不可重复读)

一事务未提交时,不能去读取数据

一事务在读取数据时,另一事物不能去修改数据

4. Serializable (事务串行化顺序执行)

不会出现并行事务,效率低下,一般不使用。

Tips:大多数数据库默认的事务隔离级别是Read committed,比如Sql Server , Oracle。

Mysql的默认隔离级别是Repeatable read。

Tips:隔离级别的设置只对当前链接有效。

对于使用MySQL命令窗口而言,一个窗口就相当于一个链接,当前窗口设置的隔离级别只对当前窗口中的事务有效;

对于JDBC操作数据库来说,一个Connection对象相当于一个链接,而对于Connection对象设置的隔离级别只对该Connection对象有效,与其他链接Connection对象无关。

Tips:设置数据库的隔离级别一定要是在开启事务之前。

二、Sping事务的五种隔离级别

1. ISOLATION_DEFAULT

使用数据库默认的隔离级别

2. ISOLATION_READ_UNCOMMITTED

事务最低的隔离级别

3.ISOLATION_READ_COMMITTED

保证一个事务修改的数据提交后才能被另外一个事务读取

4.ISOLATION_REPEATABLE_READ

保证一个事务修改的数据提交后才能被另外一个事务读取

保证一个事务读取数据后,另外一个事务才能修改

5.ISOLATION_SERIALIZABLE

这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行

你可能感兴趣的:(spring,事物的级别)