立即学习:https://edu.csdn.net/course/play/27126/371173?utm_source=blogtoedu
事务和事务隔离级别的含义
- 事务要么全做,要么全都不做
- 事务并发会引起脏读,比如重复读和幻读,事务隔离是解决此类问题,有多种隔离级别
- 虽然能通过JDBC代码改事务隔离级别,但这是数据库层面的
- 低级的事务隔离级别支持更高的并发操作,系统代价也小
- 慎用于高级的事务隔离级别
- 脏读:是指一个事务读取了另一个事务尚未提交的数据,解决办法.如果在第一个事务提交前,任何其它事务不可读取其修改过的值,则可以避免该情况
- 不可重复读:一个事务的操作导致另一个事务前两次读取到不同的数据,解决方法,只有在修改事务完全提交之后,才可以允许读取数据
- 幻读:一个事务的操作会导致另一个事务前后两次查询的结果不同,解决办法,在操作事务完全数据处理之前,任何其它事务都不能添加新数据。
JDBC里事务隔离级别的取值
- 读取未提交 : 允许脏读、不可重复读和幻读
- 读取提交 :禁止脏读,但允许不可重复读和幻读
- 可重读:禁止脏读,和不可重复读,但允许幻读
- 可串化:禁止脏读、不可重复读和幻读
- TRANSACTION_NONE 含义是,JDBC驱动不支持事务
- 不设用数据库默认的隔离级别,MYSQL是可重读,Oracle是读取提交