隔离级别:控制数据库中数据的安全性
数据不一致问题:
表student 字段age = 20
线程A 线程B
---------------------------------------------------------------------------
脏数据
20 20
20+1 commit
20+2 commit
不可重复读
20 20
20+1 commit
21
幻影读
count(*) = 12
delete ..
count(*) = 11
数据库厂商针对上述问题,做出了一些通用的解决方案:隔离级别
隔离级别:
TRANSACTION_NONE 0
TRANSACTION_READ_UNCOMMITTED 1
*TRANSACTION_READ_COMMITTED 脏数据 2
TRANSACTION_REPEATABLE_READ 脏数据 不可重复读 4
TRANSACTION_SERIALIZABLE 脏数据 不可重复读 幻影读 8
从上向下,安全性越来越高,效率越来越低
Connection.setTransactionIsolation(int level)
元数据:用来描述数据的数据
表结构===描述==》表中的业务数据
dict ===描述==》数据库自身数据的数据
DatabaseMetaData 《==》 dict
ResultSetMetaData《==》 表结构