通过我的桌面应用程序将系统与任何http站点的数据库连接

时间:2017-07-26 21:02:53

标签: java mysql database javafx

假设,我有一个学校网站,用于收集学生的信息和数据。我的网站有一个MySQL数据库。那么我或我的桌面应用程序如何从我的网站的数据库中获取这些数据?基本上,当我使用MySQL时我的桌面应用程序我编写了一些代码来连接我的本地MySQL数据库,如下所示。

public settingdatabase(){
    try{
        Class.forName("com.mysql.jdbc.Driver");
        con=DriverManager.getConnection("jdbc:mysql://localhost:3306/rgacd","root", "");
        stat = con.createStatement();
    }catch(Exception ex){
        System.out.println("Error: "+ex);

    }
}

但是当我尝试连接任何HTTP站点的数据库时,我的桌面应用程序应该怎样做。 提前致谢。 :d

1 个答案:

答案 0 :(得分:1)

通常涉及防火墙。许多运行Web服务器的网络只接受传入的http / https连接(端口80和443)。其他端口(例如连接到mysql数据库的3306)对外界是封闭的。站点的Web服务器通常连接到具有访问内部数据库的网络权限的应用程序服务器(例如Tomcat)。

因此,简单的答案通常是您无法直接连接到支持任意网站的数据库,因为您无权访问它。

这是一个有点典型的架构,由Tivoli和IBM幻灯片提供:

architecture

按照设计,在大多数情况下,防火墙外的用户无法直接访问RDBMS。

现在,在防火墙允许开放端口从任何外部计算机连接到数据库的不寻常情况下,您可以通过jdbc网络连接连接到计算机(与通过访问数据库时所做的相同)本地主机:3306)。要建立这样的连接,您需要使用数据库计算机的公共可用地址(可能与用于http连接的地址相同或不同,具体取决于系统的网络配置)。