2016-11-26 17 views
0

netbeans 8.1を使用してderbyクライアントドライバでJavaデスクトップアプリケーションを作成しました。Derbyデータベースローカルネットワーク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ファイルを持って構築し、すべてが正常な働きに作成されたPC上の正常取り組んでいます。

これを作成したので、データを更新するために同じアプリケーションにアクセスできるクライアントコンピュータはごくわずかです。私はクライアントマシン上でダービーネットワークを開始した、私はまた、アプリケーションデータベースの場所のIPサーバーを使用するlocalhostからの接続を変更しました。

しかし、私のアプリは、それが構築されたコンピュータでのみ、同じネットワーク上のクライアントでは動作しません。データベースを使用しない他のアプリケーションはネットワーク上でうまく動作しますが、derbyデータベースのフォルダもクライアントマシンに移動する必要があります。

ユーザーがデータベースでアプリケーションにアクセスできるように、クライアントマシンを適切に設定する方法を知る必要があります。

誰かがヒントを教えてください。

答えて

0

サーバーとは別のマシン上のクライアントとクライアント・サーバー接続を作成する場合、あなたはいくつかのことを行う必要があるでしょう:

  1. 変更localhostのための有効な外部から見えるアドレスには、サーバーマシン。 IPアドレスまたはホスト名(例:192.168.1.104:1527またはCarlos-Mac-Pro.att.net:1527)を使用できますが、使用するネットワークアドレスを正しく把握する必要があります。 localhost:1527は、クライアントとサーバーが同じマシン上にある場合にのみ機能します。
  2. ネットワークでクライアントマシンとサーバーマシンの接続が許可されていることを確認してください。今日では、ほとんどのマシンはデフォルトで、セキュリティ対策として他のマシンからのほとんどのインバウンドネットワーク接続を防ぎます。そのため、サーバーマシンのファイアウォールと、ローカルネットワークで使用されているネットワークデバイスクライアントマシンとサーバーマシンは、ポート1527でTCP/IP接続を許可します。

クライアントマシンにderbyデータベースフォルダーを移動したくないと思います。それはあなたのアプリケーションのための完全に異なったアーキテクチャです(組み込みクライアント対サーバ)。 https://db.apache.org/derby/docs/10.13/getstart/cgsquck70629.html

+0

お返事いただきありがとうございます。私はクライアントのIPアドレスを使用していますが、アプリケーションは実行されましたが、以前のようにしか動作しませんでした。私はサーバーのファイアウォールを構成します私はそれをやっていない、私もホスト名が運がない。ありがとう –

関連する問題