簡體   English   中英

Java桌面應用程序-在本地服務器上共享一個數據庫主機

[英]java desktop application - sharing one database host on local server

我正在研究Java桌面應用程序(swing),該應用程序需要在同一局域網(LAN)上的三台不同計算機中安裝/運行。 但是此應用程序需要共享一個數據庫,並且每個應用程序都應該能夠在同一數據庫中插入,更新,刪除記錄。

我如何實現在Java中,任何建議/幫助將不勝感激?

提前致謝

它的工作原理就像數據庫是本地的一樣。

唯一的主要區別是數據庫的URL的格式不是127.0.0.1(或localhost),而是具有存在數據庫的計算機的ip。

如果更改您的連接問題,則可能是防火牆阻止了您的請求。 檢查防火牆是否存在,並打開數據庫的端口。

如果更多應用程序嘗試同時訪問數據,則需要將autocommit設置為false,並僅在更新完成后手動提交數據。 其他讀取或嘗試更新相同數據的線程將等待,直到第一個線程提交(或回滾)了該事務。

這是解決此問題的基本方法:

-具有客戶端應用程序和服務器端

  1. 請求訪問數據庫,讓服務器端應用程序接受或拒絕請求。

  2. 在通過數據庫身份驗證后,讓服務器端應用程序將信息發送到包含數據庫信息的客戶端應用程序

  3. 當客戶端應用程序要執行您描述的操作之一:更新,刪除等...時,它會將請求發送到服務器應用程序以完成這些操作。

我在閱讀一些問題時遇到了這個問題。 我還創建了一個桌面應用程序,過去該應用程序可供同一網絡上的其他計算機(包括筆記本電腦和台式機)訪問。

步驟1:選擇將作為服務器的PC。 換句話說,您的服務器將在PC中。 您選擇的PC服務器將安裝服務器應用程序(例如XAMPP)。 在這台PC上,您將導入現有數據庫(.sql文件)。 其他PC不必安裝XAMPP(或其他服務器應用程序)。 其他PC僅需要擁有您創建的桌面應用程序的副本。 無需使用服務器應用程序和sql設置其他PC。

您選擇的該PC服務器將具有與localhost的連接字符串,因為我假設所有這些服務器都沒有訪問Internet來使用數據庫。

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

步驟2:向在您選擇的PC服務器上設置的數據庫授予特權最簡單的示例是以下示例。

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

不要忘記用連接的usernamepassword替換

但是您也可以根據自己的喜好選擇某些特權。

第三步:

設置其他PC的連接字符串 ,其中包含您創建的桌面應用程序的副本。

如果PC服務器的IP地址為192.168.2.3 ,則其他PC的連接字符串為

jdbc:mysql://192.168.2.3:3306/yourdatabasename

由於我們的數據庫和服務器應用程序已在PC-Server上設置,因此其他PC將使用PC-Server的IP地址進行連接。

希望對您有所幫助,以及其他可能看到此問題的人。

和平。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM