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