一个可由多台机器编辑的数据库

时间:2019-05-18 00:36:06

标签: java mysql server

我不熟悉此级别的编码,并且想知道如何获得一个数据库,供不同网络上的多个用户进行编辑。

我正在尝试创建一个草坪服务客户可以下载我的“应用”或代码,插入其地址并更新其工作日志的应用程序。然后老板可以在另一台机器上检索此信息。

我有一个使用swing作为前端的Java应用程序。它提示用户输入其地址,询问他们是否要更新/检索工作日志/访问其他服装。

首先,我已将此数据序列化,以便以后可以检索,但这仅在一台计算机上起作用。

接下来,我通过JDBC将它与MySQL连接起来,因此将其存储在一个简单的表中,其中地址作为主键,工作日志作为唯一的另一列。

至少,我想弄清楚如何使该程序正常工作,以便我可以将其导出,发送给其他人,然后他们可以更新与我相同的数据库。

稍后我可以处理更多的动作侦听器,现在,我无法弄清楚不同网络上的不同机器如何通过可执行jar访问同一数据库。

非常感谢。

*将可执行的jar发送到另一台机器时,它只能访问他们输入的*信息。

*我希望它可以访问以前输入的信息,以及*在其他计算机上可能已经输入或已经输入的信息。

2 个答案:

答案 0 :(得分:-1)

这是一种对您有用的方法,可让您以最少的对象映射使用自己的swing应用程序。我认为这是您的目标,因为您沿着序列化道路走了。尝试这个: 1.将数据库中的数据正确规范化为第三范式。 2. JDBC查询执行一个存储过程,以使您的对象数据完全以可消耗格式进行非规范化。 3.存储过程使用SQL命令For JSON。 4.使用GSON将结果集映射到Java对象。 GSON将自动将json映射到您的对象。 5.如果最终用户更改了对象,则将其推回数据库并再次读取。不要只是在本地进行更新。

我将对象存储在具有唯一标识符的哈希图中。这样,当我读取一个对象(因为它已被更新)时,将具有相同唯一ID的hashmap插入并用新版本替换旧版本。将更改侦听器放在哈希图中,以便从数据库读取更新时可以更新ui。使用javafx,您可以进一步映射到Observable Lists,以便GUI自动更新。

从技术上讲,您也可以对序列化对象执行此操作。只需将版本ID和唯一ID与序列化的对象一起存储即可。

无论哪种方式,您最终都将创建一个异步任务,该任务会定期根据哈希图中的对象检查数据库中的版本ID。如果版本更改为特定的唯一标识符,则将其引入并进行映射/类加载等。

答案 1 :(得分:-2)

根据您的解释,您似乎想要做的是一个简单的客户端-服务器应用程序。

  • 客户端:您的Java应用
  • 服务器:MySQL数据库服务器(位于 网络服务器)。

因此,您所需要做的就是让客户端安装/访问Java应用,并使用一个数据库。

如果您不必强制使用Java,则只需考虑一个PHP解决方案,您的用户即可使用其Web浏览器进行访问。