mysql事务

众所周知,mysql是支持事务的,使用事务可以很好的保证数据库中的数据的完整性和安全性

1、什么是事务

事务就是一组操作的集合,这组操作要么全部执行,要么全部不执行

2、mysql中事务的特性

mysql的事务有4大特性,分别是原子性,一致性,隔离性,持久性

原子性:事务中的要么全部执行,要么全部不执行

一致性:事务会将数据从一个一致性的状态转换到另外一个一致性的状态

隔离性:不同事务之间是相互隔离的

持久性:事务一旦提交就会持久化到文件,即使数据库宕机也应该不会受到影响

 

3、mysql事务的隔离级别

在mysql中,默认的是可重复读(repeatable read),但是mysql实际上有4个隔离级别

读未提交(read uncommited):可以读取到其它事务没有提交的数据 ,这个会造成脏读

读已提交(read commited):只能读取其它事务提交的数据

可重复读(repeatable read):多次读取相同的数据得到的结果是一致的

串行化:(serialazible):事务依次执行,可以充分保证数据的正确性和完整性

 

4、mybatis中的事务的传播行为

REQUIRED:如果当前有事务,则加入当前事务执行,如果没有,创建新的事务以事务的方式执行

SUPPORTS:如果当前有事务,加入事务很执行,如果没有事务,以非事务的方式执行

NOT_SUPPORT:如果当前有事务,把当前事务挂起,以非事务的方式执行

REQUIRED_NEW:如果当前没有事务,新建事务执行,如果当前有事务,把当前事务挂起,新建事务执行

NESTED:如果父调用有事务,则作为子事务加入到调用方事务中,即使抛出异常,也可以在父事务中捕获到而不影响父事务中的提交,如果父事务回滚,则作为子事务也要回滚

MANDATORY:如果调用方有事务,加入事务执行,如果没有,抛出异常

NEVER:如果调用方存在事务,抛出异常,如果没有,以非事务方式执行

 

posted @ 2020-09-11 18:10  jie的博客  阅读(108)  评论(0编辑  收藏  举报