hibernate有关事务方面的基础知识

hibernate有关事务方面的基础知识
1、什么是事务?
把一系列的相关数据操作作为一个逻辑的工作单元,这个逻辑工作单元就称为事务
2、事务的特点:
逻辑工作单元中的数据操作要么全部成功,只要一个操作失败,那么整体回滚
3、事务的特性:ACID
原子性:事务中所有的数据操作应该作为整体执行,不可以进行分割执行
一致性:事务操作前后,数据库中的数据应该保证一致的 
隔离性:多个事务访问同一个数据时,不能相互影响,也就事务之间相互隔离
持久性:事务执行完毕,对数据的影响应该能够持久的保存下来
4、关系型数据库如何保证事务的特性:
原子型、一致性和持久性通过数据库日志文件实现的
隔离性是通过数据库锁机制实现,在SQL标准中为了便于开发人员使用数据库锁,SQL表中定义事务的隔离级别,为数据库设置不同的隔离级别就可以调用不同的数据库锁
5、什么是事务并发:
多个事务同时执行,叫做事务的并发。
6、事务并发操作统一数据,会引起并发问题:
1、第一类丢失更新:一个事务把另外一个事务提交的数据回滚
2、脏读:一个事务读取另外一个事务未提交的数据,脏读和第一丢失更新对数据一致性造成很严重的问题,所以应该尽量避免这两类问题
3、不可重复读:一个事务读到另一事务已提交的更新数据
4、第二类丢失更新:
5、幻读:
7、怎么避免并发引起的问题?
使用数据库隔离级别,sql标准中定义四种事务的隔离级别:
read uncommitted 读未提交 避免第一类丢失更新,但是无法避免脏读、不可重复读、幻读
read committed 读已提交 可以避免第一类丢失更新、脏读、但是不能避免不可重复读、幻读
repeatable 可重复 可以避免第一类丢失更新、脏读、不可重复读、但是不能避免幻读
serializable 串行化 可以避免所有并发引起问题

因为事务的隔离级别越高事务并发性能越差,所以开发时并不是说将事务的隔离级别设置为最高就最好,一般情况下
会设置一个合理隔离级别,避免严重的并发问题,比如read committed,如果项目中有些数据对并发要求
更高,那么这时我们就可以采用锁对要求高的数据进行加锁,从而避免并发引起的其他问题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值