2016-11-26 50 views
0

Derby數據庫訪問我創建了使用Derby客戶端驅動程序的NetBeans 8.1的Java桌面應用程序。thorugh局域網LAN

我用這個代碼可以連接到數據庫。

Class.forName("org.apache.derby.jdbc.ClientDriver"); 
Connection conn = DriverManager.getConnection("jdbc:derby://localhost:1527/LibertySchool;create=true;user=liberty;password=liberty"); 
conn.setSchema("LIBERTY"); 
Statement s = conn.createStatement(); 
s.executeQuery("SELECT * FROM USUARIOS"); 
ResultSet rs = s.getResultSet(); 
if (rs.next()) { 
    Login entrar = new Login(); 
    entrar.setVisible(true); 
} 

獨立的應用程序是在創建它在建立DIST文件後,電腦工作正常有app.jar文件,一切工作正常。

我創造了這個這麼幾個客戶端計算機可以訪問相同的應用程序來更新數據。我已經在客戶端機器上啓動了derby網絡,我還將本地主機的連接更改爲使用應用程序數據庫位置ip服務器。

但我的應用程序不會在客戶端在同一網絡上只有當它是建立在電腦上工作。其他不使用數據庫的應用程序在網絡上運行良好,似乎德比數據庫文件夾也必須移動到客戶機。

我需要知道如何正確設置客戶機,使用戶可以訪問數據庫中的應用。

是否有人可以提供一些提示。

回答

0

如果你想與客戶端的不同的機器在服務器上的客戶端 - 服務器連接,你就必須做幾件事情:

  1. 變化localhost一個有效的外部可見的地址服務器機器。您可以使用IP地址或主機名,例如,192.168.1.104:1527Carlos-Mac-Pro.att.net:1527,但你會需要弄清楚使用正確的網絡地址。 localhost:1527只有在客戶端和服務器在同一臺計算機上時纔有效。
  2. 確保您的網絡允許客戶端機器和服務器機器之間的連接。如今,大多數機器將默認情況下,防止其他機器大多數入站網絡連接,作爲一種安全措施,所以你需要配置服務器計算機的防火牆,以及正在你的本地網絡之間使用的任何網絡設備客戶機和服務器機器,以允許端口1527上的TCP/IP連接。

我不認爲你想將德比數據庫文件夾移動到客戶機。這將是您的應用程序(嵌入式VS客戶端 - 服務器)一種完全不同的架構。下面是關於這兩個配置之間的區別一些好的背景材料:https://db.apache.org/derby/docs/10.13/getstart/cgsquck70629.html

+0

您好感謝您的回覆,我已經使用客戶端IP地址和應用程序沒有運行,但只有像我之前提到的。我將配置服務器防火牆我沒有這樣做,我也有主機名,但沒有運氣。謝謝 –