当多个 JVM 访问同一个数据库时,如何在 java 中获得行级锁?
How to obtain a row level lock in java when multiple JVMs accessing same data base?
我在不同的 JVM 中有相同应用程序的三个实例 运行。我不希望数据库中的特定值同时被不同的应用程序修改。我如何在 java 中执行此限制?
这取决于您使用的技术栈。
- 您可能要考虑做乐观或悲观并发控制
- 如果您需要悲观并发控制,并且如果您直接使用JDBC,那么行锁的方式将是DBMS 特定的(某些DBMS 甚至可能不允许您这样做)。例如,在 Oracle 中,您可以通过
select * from table_name for update
- 如果您使用的是 JPA 或 Hibernate,它由
EntityManager.lock(entity)
/Session.lock(entity)
(类似的东西)包装
- 在某些情况下,您甚至不需要做任何特别的事情。
除非您提供更多问题的详细信息,否则很难给您具体的建议。
我在不同的 JVM 中有相同应用程序的三个实例 运行。我不希望数据库中的特定值同时被不同的应用程序修改。我如何在 java 中执行此限制?
这取决于您使用的技术栈。
- 您可能要考虑做乐观或悲观并发控制
- 如果您需要悲观并发控制,并且如果您直接使用JDBC,那么行锁的方式将是DBMS 特定的(某些DBMS 甚至可能不允许您这样做)。例如,在 Oracle 中,您可以通过
select * from table_name for update
- 如果您使用的是 JPA 或 Hibernate,它由
EntityManager.lock(entity)
/Session.lock(entity)
(类似的东西)包装 - 在某些情况下,您甚至不需要做任何特别的事情。
除非您提供更多问题的详细信息,否则很难给您具体的建议。