局域网上共享数据库的javaswing程序

局域网上共享数据库的javaswing程序,java,transactions,Java,Transactions,我正在制作一个库存管理程序,它有一个Swing GUI作为前端,局域网上的多个用户共享一个数据库 我已经成功地制作了GUI组件和本地数据库,并按照我的要求在独立pc上运行程序(无需联网) 现在,我需要了解如何将我的应用程序扩展到网络环境。我已经尝试了以下操作,但失败了: 在其中一台计算机上进行MSACCESS后,我使用DriverManager.getConnection(“jdbc:u”)与数据库建立连接canaccess:////COMPUTER-PC/admin/DB.accdb"); 但

我正在制作一个库存管理程序,它有一个Swing GUI作为前端,局域网上的多个用户共享一个数据库

我已经成功地制作了GUI组件和本地数据库,并按照我的要求在独立pc上运行程序(无需联网)

现在,我需要了解如何将我的应用程序扩展到网络环境。我已经尝试了以下操作,但失败了:

在其中一台计算机上进行MSACCESS后,我使用DriverManager.getConnection(“jdbc:u”)与数据库建立连接canaccess:////COMPUTER-PC/admin/DB.accdb");


但是,当两个用户同时连接到数据库时,在两个用户进行某些更新查询后,数据并不保持一致。我被困在这里了。如何管理数据并保持一致性。

您描述的是一个两层体系结构(客户端数据库)

在大多数情况下,您希望在后端有业务逻辑、一致性检查等,因此需要一个三层体系结构(客户机后端数据库)

例如,您可以使用Spring Boot创建一个简单的后端。 可以让您开始,例如选择SpringWeb(MVC)、SpringDataJPA和(如果您不需要使用MS Access)模块

缺点是:

  • 您需要一个服务器来运行Spring引导JAR。但您也可以在当前运行MS Access的计算机上运行它
  • 您需要考虑客户端后端通信,例如使用REST。但互联网上有很多示例,例如使用SpringRestTemplate或SpringWebClient

    • 你的问题对我来说似乎不太基本

      Martin Fowler的这本书年纪不大,但它会给你一个坚实的基础。 企业应用程序体系结构精装本模式 马丁·福勒