Hibernate事务隔离级别, 悲欢锁和乐观锁

Hibernate事务隔离级别:
  如果没有锁定且多个用户同时访问一个数据库,当他们的事务同时使用相同的数据时可能会发生问题.由于并发操作带来的数据不一致包括:

  1. 丢失数据(lost update)
  2. 修改,读”脏”数据(脏读 dirty read)
  3. 虚读(phantom read)
  4. 不可重复读(unrepeated read)
  5. 第二类丢失更新(second lost updates):

    丢失数据(lost update):
      在完全未隔离事务的情况下,两个事务更新同一条数据资源,某一事物异常终止,回滚造成第一个完成的更新也同时丢失.
    脏读(dirty read):
      第二个事务查询到第一个事务还未提交的更新数据,形成脏读
    虚读(phantom read):
       一个事务执行了两次查询,第二次结果集包含第一次中没有或者某些行已经删除,造成两次结果不一致,只是另一个事务在这两次查询中插入或者删除造成的.
    不可重复读(unrepeated read):
      一个事物两次读取同一行数据,结果得到不同状态结果,如中间正好另一个事务更新了该数据,两次结果相异,不可信任.
    第二类丢失更新(second lost updates):
      如果两个事务都读取同一行,然后两个都进行写操作,并提交,第一个事务所做的改变就会丢失.

数据库事务隔离级别

为了解决数据库事务并发运行时的各种问题数据库系统提供四种事务隔离级别:
    1. Serializable 串行化
   2. Repeatable Read 可重复读
    3. Read Committed 可读已提交
   4. Read Uncommitted 可读未提交
这里写图片描述
使用Hibernate设置数据库隔离级别
在Hibernate的配置文件中可以配置数据库事务隔离级别.每一个隔离级别用一个整数表示
  8 - Serializable 串行化
    事务不会发生并发,一个事物执行完成,下一个事物才可执行
  <

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值