Java事务
java 事务原则
在Java中,实现事务的原则通常涉及以下几点:
-
原子性(Atomicity):事务作为一个整体被执行,包含在其中的各项操作要么全做,要么全不做。
-
一致性(Consistency):事务应确保数据从一个一致状态转换到另一个一致状态,即数据库状态满足所有的完整性约束。
-
隔离性(Isolation):事务之间相互独立,彼此不能看到对方的中间状态。
-
持久性(Durability):事务一旦提交,对数据库的修改是永久性的,即使系统故障也不会丢失。
Java四种隔离级别:
由低到高分别为Readuncommitted、Readcommitted、Repeatableread、Serializable
-
Readuncommitted 会出现脏读 一个事务读取到了另一个事务修改但未提交的数据。
-
Read committed!读已提交,能解决脏读问题
-
Readcommitted 会出现不可重复读 一个事务中多次读取同一行记录不一致,后面读取的跟前面读取的不一致。
-
Repeatable read !读可重复读,能解决不可重复读问题
-
Repeatableread 会出现幻读 一个事务中多次按相同条件查询,结果不一致。后续查询的结果和面前查询结果不同,多了或少了几行记录。
-
Serializable !读串行化,能解决幻读问题
MySQL默认隔离级别:可重复读
Oracle、SQLServer默认隔离级别:读已提交