【问题标题】:Derby Database Access thorugh a local network LAN通过本地网络 LAN 访问 Derby 数据库
【发布时间】:2016-11-26 15:22:19
【问题描述】:

我使用 netbeans 8.1 创建了一个带有 derby 客户端驱动程序的 java 桌面应用程序。

我使用此代码连接到数据库。

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

独立应用程序在构建后创建的 PC 上运行正常,dist 文件包含 app.jar 文件,并且一切正常。

我创建了这个,所以很少有客户端计算机可以访问相同的应用程序来更新数据。我已经在客户端机器上启动了 derby 网络,我还将连接从 localhost 更改为使用应用程序数据库位置 ip 服务器。

但我的应用程序仅在构建它的计算机上不能在同一网络上的客户端上运行。其他不使用数据库的应用程序在网络上运行良好,似乎 derby 数据库文件夹也必须移动到客户端计算机。

我需要知道如何正确设置客户端机器,以便用户可以使用数据库访问应用程序。

谁能给点提示。

【问题讨论】:

    标签: networking derby


    【解决方案1】:

    如果您想在与服务器不同的机器上与客户端建立客户端-服务器连接,您必须做几件事:

    1. localhost 更改为服务器计算机的有效外部可见地址。您可以使用 IP 地址或主机名,例如 192.168.1.104:1527Carlos-Mac-Pro.att.net:1527,但您需要确定要使用的正确网络地址。 localhost:1527 仅在客户端和服务器在同一台机器上时有效。
    2. 确保您的网络允许客户端计算机和服务器计算机之间的连接。现在,大多数机器默认情况下会阻止来自其他机器的大多数入站网络连接,作为一种安全措施,因此您需要配置服务器机器的防火墙,以及在您的本地网络中使用的任何网络设备客户端计算机和服务器计算机,以允许端口 1527 上的 TCP/IP 连接。

    我认为您不想将 derby 数据库文件夹移动到客户端计算机。对于您的应用程序(嵌入式与客户端-服务器),这将是一个完全不同的架构。这里有一些关于这两种配置差异的很好的背景资料:https://db.apache.org/derby/docs/10.13/getstart/cgsquck70629.html

    【讨论】:

    • 您好,感谢您的回复,我已使用客户端 IP 地址并且该应用程序确实运行了,但就像我之前提到的那样。我将配置服务器防火墙我还没有这样做,我也有主机名但没有运气。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多