数据库事务与并发

本文详细介绍了数据库事务的基本概念,包括ACID特性、事务隔离级别和并发问题。讨论了悲观锁与乐观锁的使用,以及如何在Hibernate中实现这两种锁。还深入探讨了数据库系统的锁类型和死锁预防策略。
摘要由CSDN通过智能技术生成

数据库事务中的基本概念 

数 据库事务是指,由一个或多个SQL语句组成的工作单元,这个工作单元中的SQL语句相互依赖,如果有一个SQL语句失败,那么整个操作都要撤销。在并发环 境中,当多个事务同时访问同一资源时,可能会造成并发问题,此时可以使用数据库系统的事务隔离级别来避免各类并发问题。此外,在应用程序中还可以使用悲观 锁和乐观锁来解决丢失更新的并发问题。 

数据库事务必须具备ACID的特征(Atomic原子性,Consistency一致性,Isolation隔离性,Durability持久性) 
    原子性,指整个数据库事务是不可分割的单元。只有所有的语句执行成功,才算成功。 
    一致性,指数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。 
     隔离性,指在并发环境中,当不同的事务同时操作相同的数据时,每个事务都有各自的完整数据空间。 
     持久性,指的是只要事务成功结束,对数据库做的更新要永久保存下来. 

Transaction和Session的关系,应该注意以下几点 
      Transaction的rollback()和Session的close()方法都会抛出HibernateException 
     不论事务是否成功,最后都应该关闭Session。 
      即使事务中只包含只读操作,也应该在事务成功执行之后提交事务,并且在事务执行失败时撤销事务,因为在提交或撤销事务时,数据库系统会释放占用的资源。 

多个事务同时运行时的并发问题 
     第一类丢失更新,撤销一个事务时,把其他事务已提交的更新数据覆盖了。 
     脏读&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值