事务简单操作

这篇博客介绍了事务的概念,包括脏读、不可重复读和虚读/幻读等问题,并讲述了通过设置事务隔离级别来解决这些问题。文章详细讲解了在MySQL中如何进行事务操作,包括查询和设置隔离级别,以及开启、提交和回滚事务。接着,讨论了原生JDBC和DbUtils中处理事务的方法。最后,提出了在项目中组织事务代码的最佳实践,强调了在同一连接下执行所有事务操作的重要性。
摘要由CSDN通过智能技术生成

事务简单操作

1.介绍

事务是数据库中的概念: 它是将一组SQL操作关联在一起,它们要么全部执行,要么全部不执行。
在这里插入图片描述
当不考虑事务的问题时,可能会发生以下的问题:

  • 脏读 (Tom先做了转出,然后在程序开始执行给Jerry进行增加时,Tom反悔了,撤销了转出,但程序已经开始对Jerry进行增加金额,程序实际是读取了提交前的数据,造成了脏读)
  • 不可重复读(在Tom转出前读取一次,在Tom转出后Jerry收到前比如查询余额再读一次,两次结果不一样,造成不可重复读)
  • 虚读/幻读(涉及到数据的增删,表格结构发生变化)

2.解决方法

可以使用事务的隔离级别来控制,一共有以下四种级别:

  • 【最低】读未提交 read uncommitted: 面临 脏读 、不可重复读 、虚读/幻读
  • 读已提交 read committed:面临 不可重复读 、虚读/幻读
  • 可重复读 reapeatable read :面临 虚读/幻读
  • 【最高】串行化 serilaziable:所有问题都解决。
    针对隔离界别: 不同的数据库有不同的默认值,且我们开发中一般使用默认值即可。
  • MySQL : 默认隔离级别是 可重复读
  • <
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值