Android JDBC 连接问题

Posted

技术标签:

【中文标题】Android JDBC 连接问题【英文标题】:Android JDBC Connectivity problems 【发布时间】:2012-12-24 07:02:28 【问题描述】:

我正在尝试连接到我网站的 mysql 数据库,但我不了解 php,所以我决定使用 JDBC。我遵循了一些视频教程(非 JDBC)并使用了他们的步骤。我跳过了 MAMP 步骤,因为我没有在我的 PC 上托管服务器。它在本地托管,因为它将成为一个更大的网站。

所以我在我的登录活动中输入了这段代码(你看到的第一个屏幕):

Connection connection = null;
    Statement statement = null;

    String username = "username";
    String password = "password";

    String dbURL = "jdbc:mysql://216.26.176.52:3306/lifesizefoto";

    try 
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        connection = DriverManager.getConnection(dbURL, username, password);
        statement = connection.createStatement();
        System.out.println("Connected.");
     catch (ClassNotFoundException error) 
        System.out.println("Cannot connect");
     catch (SQLException error) 
        System.out.println("Error: " + error.getMessage());
     catch (InstantiationException e) 
        // TODO Auto-generated catch block
        e.printStackTrace();
     catch (IllegalAccessException e) 
        // TODO Auto-generated catch block
        e.printStackTrace();
     finally 
        if (connection != null)  try connection.close(); catch (SQLException ignore)  
        if (statement != null)  try statement.close(); catch (SQLException ignore)  
    

我尝试了 .getConnection() 语句的许多变体,但我无法弄清楚。我还联系了网站主机,他为我的 IP 关闭了所有防火墙,甚至为应用程序打开了一个特殊端口。

当我运行我的应用程序时,我收到此错误:

    01-09 18:59:32.769: I/System.out(14178): Error: Communications link failure
01-09 18:59:32.769: I/System.out(14178): The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

我将不胜感激。提前谢谢你!

【问题讨论】:

【参考方案1】:

两个想法:

您网站的 MySQL 服务器不太可能绑定到外部接口 - 它可能只侦听 localhost 接口。您的托管服务提供商应该能够确认/可能会为您解决这个问题。

从长远来看,尝试将移动应用程序直接连接到服务器数据库可能效果不佳 - 我建议您要么弄清楚如何编写服务器端应用程序(用于您的移动要连接的应用程序)在 PHP 中,或找到您的主机支持的另一种语言,并使用该语言进行操作。

【讨论】:

我本来打算做 PHP,但这个版本只是 BETA,我不知道如何用 PHP 编码,所以我将在下一个版本中学习。跨度> 如果我连接到主机的 SSL ***,会不会把我放在他们的本地主机上? 可能,但您需要与您的托管服务提供商核实具体情况。

以上是关于Android JDBC 连接问题的主要内容,如果未能解决你的问题,请参考以下文章

Android上的Postgresql JDBC连接错误

Android:用 JDBC 连接 MySql

Android JDBC 连接问题

使用 JDBC 将 android 与数据库连接

使用JDBC连接android到SQL Server的正确方法

Android JDBC连接导致ctahttp异常