我有逻辑从数据库中选择一些状态为“就绪”的行一旦我得到结果集,我需要将状态更新为’processing’,因此没有其他线程可以访问这些行.然后我必须对结果集中的记录执行一些逻辑,并且一个处理完成后我需要再次将记录状...
![](https://oss.womengda.net/imgfile/2310/1ER061A13260-4c29.jpg)
我有逻辑从数据库中选择一些状态为“就绪”的行
一旦我得到结果集,我需要将状态更新为’processing’,因此没有其他线程可以访问这些行.然后我必须对结果集中的记录执行一些逻辑,并且一个处理完成后我需要再次将记录状态更新为完成.
问题:
有没有办法当我执行select语句时 – 那时我只能同时改变结果集中返回的行的状态.
有人可以建议是否有一种在java中实现它的好方法.
解决方法:
您可以在事务中SELECT … FOR UPDATE NOWAIT在更新它们之前要处理的行. SELECT … FOR SHARE NOWAIT将失败,如果有人正在更新选定的行或某人已经完成了SELECT … FOR SHARE NOWAIT on them.
细节here.
沃梦达教程
本文标题为:java – 我们可以一起选择和更新数据库吗?
![](/xwassets/images/pre.png)
![](/xwassets/images/next.png)
猜你喜欢
- SpringBoot接口数据加解密实战记录 2023-02-28
- Java 嵌入数据引擎从 SQLite 到 SPL详解 2023-03-21
- Java知识梳理之泛型用法详解 2023-04-06
- Java中Boolean和boolean的区别详析 2023-02-28
- Springboot实现给前端返回一个tree结构方法 2023-02-19
- Spring Boot多个定时任务阻塞问题的解决方法 2023-08-10
- Spring注解驱动之BeanFactoryPostProcessor原理解析 2023-06-06
- Spring Boot2深入分析解决java.lang.ArrayStoreException异常 2023-08-07
- 盘点MQ中的异常测试 2022-11-16
- jsp实现针对excel及word文档的打印方法 2023-08-03