首页 > 解决方案 > 插入表时如何避免数据不一致

问题描述

A 是表
a1 是 A 中的主键
a2 是 A 中的另一个字段

我创建了一个基于 Java Web 的应用程序并部署在 Wildfly 服务器中。字段 a1 是最终用户的只读字段,它将显示表 A 中的最大行数,a2 是可编辑字段。现在考虑两个最终用户同时访问此应用程序并尝试将数据插入表 A。这两个用户将看到字段 a1 的相同值并在字段 a2 中给出不同的值。现在两个用户都提交了应用程序并将数据插入 A。这将导致为字段 a1 插入具有相同值的两行。但是字段 a1 是主键。所以它应该有不同的价值。

在表 A 中插入数据时如何防止这种情况发生?这里我们需要应用线程概念吗?

标签: javawildfly

解决方案


使用 ID 生成器。可能有不同的类型,例如基于 Oracle 中的数据库序列,基于 MySQL 中的自动增量。

这里有一些很好的例子:


推荐阅读