Java 将系统与任何http站点连接';通过我的桌面应用程序访问我的数据库
假设我有一个学校网站来收集学生信息和数据。我的网站有一个MySQL数据库。那么我或我的桌面应用程序如何从我的网站数据库中获取这些数据呢?基本上,当我使用MySQL作为我的桌面应用程序时,我会编写一些代码来连接我的本地MySQL数据库,如下所示Java 将系统与任何http站点连接';通过我的桌面应用程序访问我的数据库,java,mysql,database,javafx,Java,Mysql,Database,Javafx,假设我有一个学校网站来收集学生信息和数据。我的网站有一个MySQL数据库。那么我或我的桌面应用程序如何从我的网站数据库中获取这些数据呢?基本上,当我使用MySQL作为我的桌面应用程序时,我会编写一些代码来连接我的本地MySQL数据库,如下所示 public settingdatabase(){ try{ Class.forName("com.mysql.jdbc.Driver"); con=DriverManager.getConnection("jdbc
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通常会涉及防火墙。许多运行web服务器的网络只接受传入的http/https连接(端口80和443)。其他端口(如3306连接到mysql数据库)对外关闭。站点的web服务器通常连接到具有访问内部数据库的网络权限的应用程序服务器(如Tomcat) 因此,简单的答案通常是,您无法直接连接到支持任意网站的数据库,因为您无法访问该数据库 下面是Tivoli和IBM幻灯片组提供的一个典型体系结构: 根据设计,在大多数情况下,防火墙之外的用户无法直接访问RDBMS
现在,在防火墙允许开放端口从任何外部机器连接到数据库的异常情况下,您可以通过jdbc网络连接到该机器(与通过localhost访问数据库的操作相同:3306)。要建立这样的连接,您需要使用数据库计算机的公共可用地址(可能与http连接使用的地址相同,也可能不同,具体取决于系统的网络配置)。您所说的“任何http站点的数据库”是什么意思?假设我的站点名为apece.000webhostapp.com,我想通过桌面应用程序连接到此网站的数据库。您需要知道数据库的ip地址(或主机名),而不是web服务器。