gpt4 book ai didi

java - 在oracle数据库中持久化的同时处理并发请求?

转载 作者:行者123 更新时间:2023-12-03 23:15:50 24 4
gpt4 key购买 nike

我有这个场景,在一个航空公司网站上(使用 Java),两个不同的客户同时发送两个请求来预订同一家航空公司的同一个座位
从纽约到芝加哥。我使用的是 oracle 数据库并且隔离级别是读提交的。 我的问题是,oracle 数据库是否提供
处理这种并发场景的任何解决方案?
我所知道的是,当第一个事务 DML 语句被触发时,它会锁定受影响的
行并将在事务完成时释放,即发出回滚或提交。但是一旦提交完成,第二个请求将尽快进行
第一个完成并将覆盖第一个。 所以它没有帮助?

是的,在 Java 中,我可以将我的 db 类设为单例,并在进行更新的方法上使用同步关键字。 但想知道有没有
无论如何,我们可以在数据库级别本身解决这种问题吗?可能作为可序列化的隔离级别可以提供帮助。但不确定?

最佳答案

如果您允许,它只会覆盖。你可以尝试类似的东西

UPDATE seatTable
SET seatTaken = true
WHERE .. find the seat, flight etc.. AND seatTaken = false

这将返回第一次更新的 1 行和之后更新的 0 行。

关于java - 在oracle数据库中持久化的同时处理并发请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7455726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com