聊聊数据库事务

总结

  1. Mysql 四种隔离级别都支持,orangle只支持读写提交和串行化
  2. 在application.properties中配置默认值
#默认
# -1默认
#1 未提交读
#2 读写提交
#3 可重复读
#4 串行化
#tomcat 数据源默认隔离级别
spring.datasource.tomcat.default-transaction-isolation=2

什么是隔离级别

  1. Isolation.READ_UNCOMMITTED 未提交读
    允许一个事务读取另外一个事务未提交的数据,
    出现脏读,应用不广
  2. Isolation.READ_COMMITTED 读写提交一个事务只能读取另外一个事务已经提交的数据,不能读取未提交的数据
  3. 可重复读
  4. Isolation.SERIALIZABLE 串行化

传播行为

1.REQUIRED (常用)需要事务,默认传播行为,如果当前存在事务就沿用,否则新建一个事务在子方法
2. SUPPORTS 支持事务,如果当前存在事务就沿用,如果不存在则采用无事务方式运行子方法
3. MANDATORY 必须使用事务,如果当前没有事务抛出异常,如果存在就沿用
4. REQUIRED_NEW(常用) 无论当前事务是否存在,都会创建新事务运行方法
5. NEVER 不支持事务,如果存在事务就抛出异常,
6. NESTED(常用) 在当前方法调用子方法时,如果子方法发生异常,则只回滚此方法执行过的sql,而不回滚当前方法事务

/**
	 * 隔离级别,读写提交
	 * 传播行为,默认传播行为,需要事务,如果调用方法存在事务就沿用,否则创建事务
	 * @param users
	 * @return
	 */
	@Transactional(isolation=Isolation.READ_COMMITTED,propagation=Propagation.REQUIRED)
	public int insertUserts(List<User> users){
		
		return 0;
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值