我知道什么是乐观锁定和悲观锁定,但是当您编写java代码时,您是如何做到的?假设我在Java中使用Oracle,我有JDBC中的任何方法可以帮助我做到这一点吗?我将如何配置这件事?任何指针将不胜感激。如何从java代码编写乐观和悲观锁定
6
A
回答
3
假设我在Java中使用Oracle,在JDBC中是否有任何方法可以帮助我做到这一点?
This Oracle paper应为您提供关于如何做到这一点的一些技巧。
没有具体的JDBC方法。相反,您通过设计SQL查询/更新以及放置事务边界的方式实现乐观锁定。
11
您可以在这样的数据库表实现乐观锁(这是锁定多么乐观在Hibernate中完成):
- 添加整数“版本”列到你的餐桌。
- 每次更新相应行时增加此列的值。
- 要获得锁定,只需读取该行的“版本”值即可。
- 将“version = obtain_version”条件添加到更新语句的 的where子句中。验证更新后受影响的行数。 如果没有行受到影响 - 某人已经修改了您的条目。
你的更新应该像
UPDATE mytable SET name = 'Andy', version = 3 WHERE id = 1 and version = 2
当然,如果各方遵循它,相反,需要特殊的处理DBMS提供的锁这个机制只。
希望这会有所帮助。
相关问题
- 1. 乐观和悲观的锁
- 2. 乐观锁或悲观锁?
- 3. 锁定在爪哇 - 乐观VS悲观
- 4. 悲观离线锁(Java,Spring)
- 5. 乐观锁定
- 6. 乐观锁定
- 7. 悲观锁定记录?
- 8. 执行悲观锁定
- 9. 悲观锁定失败ObjectOptimisticLockingFailureException
- 10. 悲观锁失败
- 11. jdbctemplate和乐观锁定
- 12. 乐观锁定和org.hibernate.StaleObjectStateException:
- 13. 乐观锁定和覆盖
- 14. JPA悲观锁定和Spring中的JpaTemplate
- 15. HSQLDB和乐观锁
- 16. 乐观锁定和全表锁
- 17. 用hibernate的乐观/悲观锁定并发的好策略/解决方案
- 18. NEventStore乐观锁
- 19. 乐观锁乐观并发控制
- 20. 乐观版本锁定
- 21. 乐观锁定队列
- 22. 乐观锁定的原子
- 23. Yii:禁用乐观锁定
- 24. 乐观锁定Laravel 4
- 25. JPA @Version乐观锁定
- 26. 忽略乐观锁定
- 27. 休眠悲观锁定模式
- 28. 实体框架 - 悲观锁定
- 29. 悲观锁定在GORM哪里查询
- 30. 对CloudSQL的GAE悲观锁定
Java锁定和JDBC在您所查找的方式中无关。你试图解决什么问题? Java锁是可以通过使用“同步”关键字获得的重入锁。 那么,你到底在找什么? – Pavan 2012-01-01 06:47:45
我正在寻找数据库锁定 – user2434 2012-01-01 07:42:58