【问题标题】:how to avoid the inconsistency of data while inserting into table插入表时如何避免数据不一致
【发布时间】:2020-01-10 10:46:27
【问题描述】:

A 是一张桌子
a1 是 A 中的主键
a2 是 A 中的另一个字段

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

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

【问题讨论】:

  • 你可以让数据库自动生成主键。
  • 像没有 jsf 一样解决它。让您的 jdbc 或 jpa 层帮助您。实际上所有 ypyr 标记都不是“主题”(java 太通用,wildfly 太具体(并且不相关)

标签: java wildfly


【解决方案1】:

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

这里有一些很好的例子:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 2017-10-08
    • 2016-03-22
    • 2015-03-25
    相关资源
    最近更新 更多