spring事务
2021-03-01 04:25
标签:pack pre ola lang 组件 建模 spring atomic jdb 原文链接http://zhhll.icu/2021/01/06/%E6%A1%86%E6%9E%B6/spring/Spring%E4%BA%8B%E5%8A%A1/ 一个事务要么同时成功,要么同时失败 Atomic原子性 事务是由一个或多个活动组成的一个工作单元。原子性确保事务中的所有操作全部发生或全部不发生 Consistent一致性 一旦事务完成,系统必须确保它所建模的业务处于一致的状态 Isolated隔离性 事务允许多个用户对数据进行操作,每个用户的操作不会与其他用户纠缠在一起 Durable持久性 一旦事务完成,事务的结果应该持久化 PROPAGATION_REQUIRED 支持当前事务,如果当前没有事务,就新建一个事务 PROPAGATION_SUPPORTS 支持当前事务,如果当前没有事务,就以非事务方式执行 PROPAGATION_MANDATORY 支持当前事务,如果当前没有事务,就抛出异常 PROPAGATION_REQUIRED_NEW 新建事务,如果当前存在事务,把当前事务挂起 PROPAGATION_NOT_SUPPORTED 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起 PROPAGATION_NEVER 以非事务方式执行操作,如果当前存在事务,则抛出异常 PROPAGATION_NESTED 如果当前存在事务,则在嵌套事务内执行,如果当前没有事务,则新建事务 事务只进行读取操作 readOnly=true 告诉spring当前事务只会进行读取操作,不会进行修改操作,可以帮助数据库引擎优化 注:如果设置为只读的话,千万不要在事务里修改数据,使用只读操作时,spring不会进行加锁处理,如果修改数据的话,会出现问题 事务时间过长,则回滚 rollback-for 指事务对于那些检查型异常应当回滚而不提交(默认spring会对所有的运行时异常回滚) no-rollback-for 指事务对于那些异常继续执行不回滚 在这里采用的是spring中的数据源 当然由于是使用的注解,不要忘记组件扫描 之后就可以在要保证事务的方法上配置@Transactional以及在该注解上配置相应的事务隔离级别(isolation)、事务传播行为(propagation)、对哪些异常执行回滚(rollbackFor)以及不执行回滚(noRollbackFor) 默认对运行时异常回滚 由于本身的博客百度没有收录,博客地址http://zhhll.icu spring事务 标签:pack pre ola lang 组件 建模 spring atomic jdb 原文地址:https://www.cnblogs.com/life-time/p/14454907.htmlspring事务
事务介绍
特性
事务隔离级别
传播行为
只读
事务超时
回滚规则
事务的使用
create table user(
id int primary key AUTO_INCREMENT,
name varchar(20) not null,
account double
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into user (name,account) values(‘张三‘,1000);
insert into user (name,account) values(‘李四‘,1000);
使用注解
使用XML
下一篇:C++中const的用法