android中的jdbc问题 - 无法连接到数据库

Posted

技术标签:

【中文标题】android中的jdbc问题 - 无法连接到数据库【英文标题】:Problem with jdbc in android - unable to connect to database 【发布时间】:2011-10-18 08:31:15 【问题描述】:

我是 jdbc 和 android 的新手。如果这个问题看起来很愚蠢,请原谅我。 我正在尝试从应用程序连接到 mysql 数据库。 我浏览了jdbc教程并编写了以下代码:


 public static void connectToServer () 
     
        Connection conn = null; 
        try
        
            //Connect to the database
            String userName = "********";
            String password = "********";
            String url = "jdbc:mysql://my.domain.name/myDBname";
            Class.forName ("com.mysql.jdbc.Driver").newInstance ();
            conn = DriverManager.getConnection (url, userName, password);
            Log.e(tag,"Database connection established");

            // Query the database
            Statement s = conn.createStatement ();
            String query = "INSERT INTO myTableName (A,B,C)" +
                            "VALUES ('a','b','c')");
            Log.e(tag,query);
            s.executeQuery (query);
            s.close ();            
        
        catch (Exception e)
        
            Log.e(tag,"Database Connection Failed");
            Log.e(tag,e.getMessage());
                
        finally
        
            if (conn != null)
            
                try
                
                    conn.close ();
                    Log.e(tag,"Database connection terminated");
                
                catch (Exception e)  /* ignore close errors */ 
            
        
    

我的清单代码: < uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> < uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> logcat 是: .... Database connection terminated //my output com.mysql.jdbc.Driver // output from exception e.getMessage()

我做错了什么? 从 java 应用程序和 android 应用程序连接有区别吗? 编辑:添加清单权限

【问题讨论】:

【参考方案1】:

确保您在清单中请求互联网权限。

编辑:为此,请将&lt;uses-permission android:name="android.permission.INTERNET" /&gt; 添加到您的清单中。

刚刚找到this 链接。不确定这是否可以轻松完成。

还有其他需要研究的是 CouchDB。它基于 REST,因此您不必围绕 MySQL DB 构建 php 服务 - 它纯粹是 REST。

【讨论】:

请检查我添加的权限是否足够。 @Jack - 修复了空白清单代码,但 OP 希望您解决他的问题(而不是他修复它):( 不,它必须是 我添加了权限,我得到了完全相同的结果。数据库连接已终止。 您是否在不同的环境中进行了测试,比如使用 Java 的本地计算机?【参考方案2】:

我知道这对某些人有用。确保使用 JDBC 连接器 mysql-connector-java-3.0.17-ga-bin.jar。谷歌。

【讨论】:

我在 eclipse 文件夹中有 mysql-connector-java-5.1.17。那样可以么?如果它的位置错误,我应该在哪里找到它?我也猜想 jdbc 驱动程序附带 jdk1.7.0 jre7 包。那么我也需要单独拥有驱动程序吗? 您将其添加为外部 jar 吗? 没有。你能告诉我怎么做吗? 好吧,右键单击您的项目文件夹...然后选择构建路径--> 配置构建路径--> 添加外部 jar --> 然后导航到 jar 在您的计算机上的位置,然后添加它。所以在你的情况下导航到 mysql-connector.jar 嗨,我收到了 - 转换为 Dalvik 格式失败并出现错误。【参考方案3】:

为什么不花点时间学习 android.database.sqlite 呢?恕我直言,从长远来看,这是值得的。

祝你好运。

【讨论】:

我正在尝试将其存储在手机外部,以便任何拥有凭据的人都可以访问它。不过还是谢谢你的建议。

以上是关于android中的jdbc问题 - 无法连接到数据库的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 JDBC 连接到 docker 中的本地 MySQL

无法使用 JDBC 在 android 中连接到 sql server 2008

Android - 关于使用 jdbc 连接到 MSSQL 的 classnotfound

JDBC 无法连接到某些 WiFi 的 Azure 服务器:允许所有 IP

无法连接到 SQL 数据库(Java、Android Studio)

无法使用 jdbc 驱动程序连接到 mysql