【发布时间】:2016-05-13 08:23:48
【问题描述】:
我创建了一个 Android 应用程序来使用 MySQL 连接数据库。当我测试与 localhost 10.0.2.2:3306 的连接时,我可以获取数据库,但是当我使用真实主机从我的服务器获取数据库时,我什么也得不到。我的主机是:https://192.168.1.xxx:xxxxx,我的数据库名称是 test。我的问题是什么?请帮我。谢谢你。 这是我的代码:
private class MyTask extends AsyncTask<Void, Void, Void> {
private String idFromServer;
private String url="jdbc:mysql://192.168.1.xxx:xxxxx/test";
String name = "AAA";
@Override
protected Void doInBackground(Void... params) {
try {
ResultSet result = null;
String a = "SELECT * FROM testtable";
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection(url,"aaa","abcdef");
Statement state = con.createStatement();
result = state.executeQuery(a);
while (result.next()) {
if (name.equals(result.getString("name"))) {
idFromServer = result.getString("id");
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(Void result) {
id.setText(idFromServer);
super.onPostExecute(result);
}
}
【问题讨论】:
-
JDBC 专为高带宽、低延迟、高可靠的网络连接而设计(例如,桌面到数据库服务器、Web 应用程序服务器到数据库服务器)。移动设备提供的这些功能很少,而且没有一个始终如一。
-
所以围绕您的数据库创建一个 Web 服务并从 Android 访问它。
-
192.168.1.xxx 不是公共 IP 地址,因此您无法从 Internet 连接到它。
标签: java android mysql database jdbc