Hibernate——事务

事务:要么同时完成,要么同时都不完成。

事务的特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

脏读:读了另一个事务没有提交的数据
不可重复读:在同一个事务中,对同一个数据读两次的结果不同
幻读:一个事务在读的过程中,有另一个事务执行了插入或删除数据,影响了读的结果

数据库的事务隔离级别:
·read-uncommitted:读未提交的。会出现脏读、不可重复读、幻读
·read-committed:读已提交的。避免了脏读,但会出现不可重复读、幻读(一般选择)
·repeatable-read:可重复读。相当于对数据加了一把锁
·serial:序列化,一个一个排队来

悲观锁:
在读取数据时,数据库对数据加锁,使其他事物不能修改该数据
方法:

session.load(Account.class, 1, LockMode.UPGRADE);

乐观锁:
给数据加一个字段, 代表他的版本字段,一旦数据被更改,则该字段自动+1。在更新数据时,会比较新的数据和旧数据的版本,若一致,则可以修改;若不一致,则代表数据被修改过。
方法:
在类中加一个版本属性,但不要指定值。并在该属性的getXXX()方法上注解@Version

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值