【问题标题】:java desktop application - sharing one database host on local serverjava桌面应用程序-在本地服务器上共享一个数据库主机
【发布时间】:2015-09-16 15:06:39
【问题描述】:

我正在开发需要在同一本地网络 (LAN) 上的三台不同计算机上安装/运行的 java 桌面应用程序 (swing)。但是这个应用程序需要共享一个数据库,并且每个应用程序都应该能够在同一个数据库中插入、更新、删除记录。

我如何在 java 中实现这一点,任何建议/帮助将不胜感激?

提前致谢

【问题讨论】:

  • 欢迎您。请尝试一下,当您遇到编程问题时回来。共享数据库可能不像通过 URL 访问那么难。只需提供一个通用网址

标签: java database swing networking lan


【解决方案1】:

我在阅读一些问题时遇到了这个问题。我还创建了一个桌面应用程序,该应用程序可以被同一网络上的其他计算机访问,包括过去的笔记本电脑和台式电脑。

第 1 步: 选择哪台 PC 作为服务器。换句话说,PC 中的哪一个将是您的服务器。您选择的 PC 服务器将安装一个服务器应用程序(例如 XAMPP)。这台 PC 用于导入现有数据库(.sql 文件)。其他 PC 不必安装 XAMPP(或其他服务器应用程序)。其他 PC 只需拥有您创建的桌面应用程序的副本。无需为其他PC设置服务器应用程序和sql。

您选择的这台 PC 服务器将有一个带有localhost 的连接字符串,因为我假设他们都没有访问互联网来使用数据库。

示例:jdbc:mysql://localhost:3306/yourdatabasename

第 2 步: 授予在您选择的 PC 服务器上设置的数据库的权限 最简单的例子如下。

grant all privileges on db_name.* to 'username'@'localhost' identified by 'password';

不要忘记替换为您的联系人的 usernamepassword

但您也可以根据自己的喜好选择某些特权。

第 3 步:

设置具有您创建的桌面应用程序副本的其他 PC 的连接字符串

如果PC服务器的IP地址是192.168.2.3,那么其他PC的连接字符串将是

jdbc:mysql://192.168.2.3:3306/yourdatabasename

由于我们的数据库和服务器应用程序是在 PC-Server 上设置的,因此其他 PC 将使用 PC-Server 的 IP 地址进行连接。

我希望这对可能看到此问题的其他人有所帮助。

和平。

【讨论】:

    【解决方案2】:

    这是解决此问题的基本方法:

    -拥有客户端应用程序和服务器端

    1. 请求访问数据库,让服务器端应用程序接受或拒绝请求。

    2. 通过数据库身份验证后,让服务器端应用程序将信息发送到包含数据库信息的客户端应用程序

    3. 当客户端应用程序想要执行您描述的操作之一时:更新、删除等...让它向服务器应用程序发送请求以完成这些操作。

    【讨论】:

      【解决方案3】:

      它的工作方式与本地数据库完全一样。

      唯一的主要区别是数据库的 url 不是 127.0.0.1(或 localhost)的形式,而是数据库所在机器的 ip。

      如果更改您有连接问题,可能是防火墙阻止了您的请求。检查是否存在防火墙并打开数据库的端口。

      如果更多应用程序尝试同时访问数据,您需要将 autocommit 设置为 false 并仅在更新完成时手动提交数据。读取或尝试更新相同数据的其他线程将等到第一个线程提交(或回滚)事务。

      【讨论】:

      • 感谢您的快速回复,我还有一个问题。如果两个或多个应用程序同时尝试更改记录,如何处理?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-02
      • 2011-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      • 2014-10-25
      相关资源
      最近更新 更多