Java/Javascript->多个用户在同一个sql数据源上工作,必须在前端保持一致

Java/Javascript -> Multiple users working on same sql-datasource that has to be consistent in frontend

本文关键字:工作 数据源 保持一致 前端 sql 同一个 gt Javascript- Java 用户      更新时间:2023-09-26

我正在开发一个web应用程序,该应用程序在前端显示SQL表中的数据。

更新:

数据库是PostgreSQL 9.4

我的应用程序是一个Maven Web应用程序,使用javaservlet进行逻辑处理,使用jsp页面进行表示。

有多个用户在处理同一数据(与数据源相同的sql表)

如何让所有用户始终可以使用相同的数据?

示例:

  • 用户A&B查看带有数据的html表(用户sql表)
  • 用户A对数据进行更改,例如向sql表中添加新用户(通过按钮触发sql插入语句)
  • 用户B应该能够看到对该表所做的更改

截至目前,只有当用户B刷新页面时,才会再次从sql表中提取数据;他能够看到另一个用户所做的更改。

问题是我目前的状态是:

  • 用户A&B与所有用户一起查看html表
  • 用户A删除用户C
  • 用户A(尚未看到用户C已从sql表中删除)希望更改用户C的属性(如更改其名称)
  • 然后他进行名称更改,但sql-udate查询(由按钮触发)将失败,因为用户C已被用户a从sql表中删除

是否有任何方法可以向多个用户显示始终最新的相同数据,以便两个用户都可以在任何时候使用完全相同的数据??

您可以使用WebSocket连接来保持用户的最新状态。对API的每次调用都必须将相关更改推送给所有受影响的用户。根据您的API设计,这可能根本不难实现。

如果您只是想保持一致性,那么可以实现某种记录锁定。将新列添加到表中,例如last_updated,并让通过API的任何UPDATEDELETE操作失败,直到last_updated列与用户发送到服务器的内容一致。这将确保只有拥有正确当前记录的用户才能针对它发布UPDATEDELETE语句

关于Java 中WebSockets的一些进一步阅读