Android Studio [JDBC]:为什么我无法访问数据库

时间:2015-03-09 17:05:29

标签: java android mysql jdbc android-studio

我知道之前有一些话题讨论了这个问题,但我几乎没有尝试所有的解决方案,我知道有些人不建议使用JDBC来处理android中的DB但是我的大学项目的目的我需要使用它。

我有一个由Hostgator托管的数据库,我确信我正在使用的信息(主机名,用户和通过),因为我尝试使用其他Java IDE并且它们工作得很好,所以没有我的电脑没有阻止了。我将Mysql J连接器添加到Android Studio作为库,尝试了2个版本的最新版本和3.0.17,但没有运气,我不知道我做错了什么因为logcat中没有错误或异常的出现者。

这是代码包含与DB的连接:( P.S.I删除了异常语句以缩短代码)

protected Void doInBackground(Void... params) {
Connection start;

//尝试了localhost它无法正常工作

String url = "jdbc:mysql://xxx.xxx.xxx.xxx:3306/abed_impresent";
String username = "abed_bayoun";
String pass = "xxxxx";
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        start = DriverManager.getConnection(url, username, pass);

    Statement my;
    if (start != null) {
        test = new ArrayList<>();
            my = start.createStatement();
            ResultSet res = my.executeQuery("select code from Tutors");
            while (res.next()) {
                test.add(res.getString("code"));
            }
            for (int c = 0; test.size() > c; c++) {
                if (text.getText().equals(test.get(c))) {
                    Intent i = new Intent(tStart.this, tChoose.class);
                    startActivity(i);
                    Toast.makeText(tStart.this, "test", Toast.LENGTH_LONG).show();
                    break;
                } else continue;
            }
    }
    return null;

if语句下的所有代码都被开始跳过,因为应用程序似乎无法连接到DB。

2 个答案:

答案 0 :(得分:0)

强烈建议不要在android上使用jdbc驱动程序(至于我记得有一个jdbc版本适用于android)。而不是jdbc驱动程序考虑创建提供数据库内容的Web服务。

答案 1 :(得分:-1)

好的我知道我做错了什么,

我把这段代码放在一个单独的try-catch语句中

start = DriverManager.getConnection(url, username, pass);

以某种方式阻止其他代码获取start的值并将其作为空值处理。

我将其余的代码包含在同一个try-catch语句中,这对我来说很有用。

感谢大家的努力。