2016-11-26 5 views
0

Ich habe eine Java-Desktop-Anwendung mit Derby-Client-Treiber mit Netbeans 8.1 erstellt.Derby Datenbank Zugriff durch ein lokales Netzwerk LAN

Ich benutzte diesen Code, um mit der Datenbank verbunden zu werden.

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); 
} 

Die Standalone-Anwendung auf dem PC normale Arbeit, die es wurde nach erstellt auf die dist-Datei erstellen hat die app.jar Datei und alles funktioniert normal.

Ich habe dies erstellt, so dass einige Client-Computer auf die gleiche Anwendung zugreifen können, um Daten zu aktualisieren. Ich habe das Derby-Netzwerk auf dem Client-Rechner gestartet, ich habe auch die Verbindung von localhost geändert, um den IP-Server der App-Datenbank zu verwenden.

Aber meine App funktioniert nicht auf Clients im selben Netzwerk nur auf dem Computer, wo es gebaut wurde. Andere Anwendungen, die keine Datenbanken verwenden, funktionieren gut über das Netzwerk. Es scheint, dass der Derby-Datenbankordner auch auf den Clientcomputer verschoben werden muss.

Ich muss wissen, wie Sie den Client-Rechner richtig einstellen, damit Benutzer mit der Datenbank auf die App zugreifen können.

Kann jemand bitte einige Hinweise geben.

Antwort

0

Wenn Sie eine Client-Server-Verbindung mit dem Client auf einem anderen Computer als dem Server machen möchten, müssen Sie mehrere Dinge zu tun haben:

  1. ändern localhost auf eine gültige äußerlich sichtbare Adresse für die Servermaschine. Sie können eine IP-Adresse oder einen Hostnamen verwenden, z. B. 192.168.1.104:1527 oder Carlos-Mac-Pro.att.net:1527, aber Sie müssen die richtige Netzwerkadresse herausfinden, die Sie verwenden möchten. localhost:1527 funktioniert nur, wenn der Client und der Server sich auf demselben Computer befinden.
  2. Stellen Sie sicher, dass Ihr Netzwerk Verbindungen zwischen den Clientcomputern und dem Servercomputer zulässt. Heutzutage werden die meisten Maschinen standardmäßig die meisten eingehenden Netzwerkverbindungen von anderen Maschinen als Sicherheitsmaßnahme verhindern. Daher müssen Sie die Firewall des Servercomputers sowie alle Netzwerkgeräte konfigurieren, die in Ihrem lokalen Netzwerk zwischen diesen Computern verwendet werden der Client-Rechner und die Server-Maschine, TCP/IP-Verbindungen auf Port 1527.

ich glaube nicht, Sie verschieben mögen die Derby-Datenbank-Ordner auf die Client-Rechner ermöglichen. Das wäre eine völlig andere Architektur für Ihre Anwendung (eingebettet vs Client-Server). Hier ein paar gute Hintergrundinformationen über die Unterschiede zwischen den beiden Konfigurationen: https://db.apache.org/derby/docs/10.13/getstart/cgsquck70629.html

+0

Hallo danke für deine Antwort, ich habe die Client-IP-Adresse verwendet und die App lief, aber nur wie ich schon erwähnt habe. Ich werde Server Firewall konfigurieren Ich habe das nicht getan, ich habe auch den Hostnamen, aber kein Glück. Vielen Dank –

Verwandte Themen