1.Mysql支持事物 默认自动提交事物
2.可以手动开启关闭事物 如图开启 更新 回滚 以及 开启 更新 提交
image.png
java 解决 Mysql事物问题:
未加入事物处理之前
image.png
image.png
当转账遇到异常时候:
image.png
添加事物到代码中:
_SSJPX338IINMKCJ%F42LDM.png
注意: 只有一条Sql语句的时候没必要使用事物处理
脏读 虚读 不可重复读
image.png
隔离级别:
image.png
查看数据库的隔离级别:
image.png
更改隔离级别 LEVRL 1 :
image.png
更改隔离级别之后 通过查询隔离级别是查不出来的。解决方法:
开启两个线程分别开启事物 操作数据库 :
image.png
image.png
上面的演示就是出现了脏读现象。
解决方法 就是 设置隔离级别为 更改隔离级别 LEVRL 2 可以解决脏读现象。
但是 不可重复读 现象会随之产生: 如下图:
image.png
正常情况应该是 左边客户端 commit 之后才能看见更新的数据。 所以设置LEVEL 2 会产生 不可重复度的现象。
当设置隔离级别为 LEVEL 4 的时候 (Mysql 默认 ) 避免脏读:
image.png
不可重复读也是可以避免的 。
image.png
当 左边客户端 conmit 的时候看到 正确现象。
当设置隔离界别为 LEVEL 8 的时候 :
打开两个线程 :
image.png
如果左边不提交 commit 的时候 右边是不能 进行怎删改的 操作的。
java 设置事物级别 API
image.png