隔离级别多线程并发读取数据时的正确性
用法:
connnection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
隔离级别 | 脏读 | 不可重复读 | 幻读 |
读未提交(Read uncommitted) | V | V | V |
读已提交(Read committed) | x | V | V |
可重复读(Repeatable read) | x | x | V |
可串行化(Serializable ) | x | x | x |
注:V:可能出现,X:不会出现
脏读(dirty reads)
一个事务读取了另一个未提交的并行事务写的数据。
不可重复读(non-repeatable reads)
一个事务重新读取前面读取过的数据, 发现该数据已经被另一个已提交的事务修改过。
幻读(phantom read)
一个事务重新执行一个查询,返回一套符合查询条件的行, 发现这些行因为其他最近提交的事务而发生了改变。