我正在研究java桌面应用程序(swing),它需要在同一本地网络(LAN)上的三台不同计算机上安装/运行。但是这个应用程序需要共享一个数据库,每个应用程序都应该能够在同一个数据库中插入,更新,删除记录。
我如何在java中实现这一点,任何建议/帮助都会受到赞赏?
提前致谢
答案 0 :(得分:0)
它的工作原理就像数据库是本地的一样。
唯一的区别是数据库的url不是127.0.0.1(或localhost)的形式,而是具有数据库所在机器的ip。
如果更改您遇到连接问题,防火墙可能会阻止您的请求。检查是否存在防火墙并打开数据库的端口。
如果有更多应用程序尝试同时访问数据,则需要将autocommit置为false并仅在更新完成时手动提交数据。读取或尝试更新相同数据的其他线程将等到第一个线程提交(或回滚)事务。
答案 1 :(得分:0)
这是解决此问题的基本方法:
- 有客户端应用程序和服务器端
请求访问数据库,让服务器端应用程序接受或拒绝请求。
对数据库进行身份验证后,让服务器端应用程序将信息发送到包含数据库信息的客户端应用程序
当客户端应用程序想要执行您所描述的操作之一时:更新,删除等...让它向服务器应用程序发送请求以完成这些操作。
答案 2 :(得分:0)
我在阅读一些问题时遇到过这个问题。我还创建了一个桌面应用程序,它可以被同一网络上的其他计算机访问,包括过去的笔记本电脑和台式机。
第1步: 选择哪台PC是服务器。换句话说,哪台PC将成为您的服务器。您选择的PC服务器将安装服务器应用程序(例如XAMPP)。您可以在此PC导入现有数据库(.sql文件)。其他PC不必安装XAMPP(或其他服务器应用程序)。其他PC只需要拥有您创建的桌面应用程序的副本。无需使用服务器应用程序和sql设置其他PC。
您选择的此PC服务器将具有localhost
的连接字符串,因为我假设所有这些服务器都没有访问互联网以使用数据库。
示例:jdbc:mysql://localhost:3306/yourdatabasename
第2步: 授予在所选PC服务器上设置的数据库的权限 最简单的例子是下面的例子。
grant all privileges on db_name.* to 'username'@'localhost' identified by 'password';
别忘了更换你的连接' username
和password
但您也可以根据自己的喜好选择某些特权。
第3步:
设置其他电脑' 连接字符串,其中包含您创建的桌面应用程序的副本。
如果PC服务器的IP地址为192.168.2.3
,那么其他PC的连接字符串将是
jdbc:mysql://192.168.2.3:3306/yourdatabasename
其他PC将使用PC-Server的IP地址进行连接,因为我们的数据库和服务器应用程序是在PC-Server上设置的。
我希望这有助于和其他可能会看到这个问题的人。
和平。