悲观锁:从加载对象开始锁定。在提交以前这段时间,一直保持锁定状态,直到commit()提交后再解锁。数据库
设置方法:session
session.load(Info.class,"p003",LockOptions.UPGRADE);
乐观锁:在操做时,不作锁定,在提交时,进行冲突检测,将如今数据库中的内容与刚开始读的内容对照一下,若是内容不一致,就抛异常spa
乐观锁能够用两种方法设置:code
1.在数据库中加一个字段version,在实体类中加一个属性version,映射文件中加<version name="version"> <version name="version"> 这个字段要放在id下面对象
每次提交时,自动会自动检查是否改变blog
2.修改数据时:update info set name=?,sex=?,nation=?,birthday=? where code=? and name=? and sex=? and nation=? and birthday=?it
经过这样的方式,在修改时,确保不会出现冲突,若是数据发生改变,则不会对数据进行修改io