gpt4 book ai didi

java - 与 db 的并发冲突语句

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:42 26 4
gpt4 key购买 nike

我正在尝试制作一个网站(使用 html、javascript 和 jsp)同时向数据库发送修改和选择查询。 MySQL 显然不喜欢这样(ConcurrectModificationException无处不在)。

我想创建一些并发接收sql语句的东西,然后根据某些属性将它们排序到一个队列中,然后在确保它们不相互矛盾之后一个一个地执行队列其他(在删除表之后的插入语句会自相矛盾)。

问题是我不确定如何检查两个语句是否冲突。我的想法是检查表理论上如果语句被执行(通过在重复的表上运行它们)看起来像什么,然后如果抛出错误,一个语句与另一个语句冲突。但这意味着我必须多次复制表格,而且我非常怀疑它是否可行。

那么,如何检查两个语句是否冲突?

例如:

String sql1 = "DELETE FROM users WHERE id=3625036";
String sql2 = "UPDATE users SET displayName=\\"FOO\\" WHERE id=3625036";

如果这两个是同时接收的,然后以某种方式排序,那么 sql2 可能会在 sql1 之后执行,这将引发异常。如何检查给定示例中的冲突?

最佳答案

MySQL 与所有完整的数据库系统一样,在正常的事务和锁定限制范围内支持大量并发操作。您最好通过询问有关堆栈溢出的问题来解决您的特定问题。

我认为您不应该让学生完成管理排队等任务。您所描述的内容的复杂性很重要,更重要的是,这就是数据库系统的用途。当他们可以利用比他们 build 的更好的东西时,应该教导他们不要重新发明轮子。除非您特别想教授这种低级数据库构造。

关于java - 与 db 的并发冲突语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44766240/

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