尝试使用JDBC连接到DB时应用程序崩溃

时间:2017-08-28 21:12:50

标签: java android database android-studio jdbc

我想从我的数据库中获取一些值,但是当我点击按钮(void ButtonClick)时,我的应用程序崩溃了。

那是我的代码:

public void ButtonClick() throws Exception {
    getConnection();
}

public Connection getConnection() throws Exception {
    try {
        String username = "*******";
        String password = "*******";
        String url = "jdbc:mysql://http://**.***.***.***:3306/UserDB";
        Class.forName("com.mysql.jdbc.Driver").newInstance();

        Connection conn = (Connection) DriverManager.getConnection(url,username,password);
        Statement statement = (Statement) conn.createStatement();
        String query = "SELECT * FROM TABLE 'UserDB'";
        ResultSet result = statement.executeQuery(query);
        while (result.next()) {
            String name = result.getString("Username");
            int id = result.getInt("ID");
            int points = result.getInt("Points");
            Toast.makeText(this, name + " " + id + " " + points, Toast.LENGTH_SHORT).show();
        }
        return  conn;
    } catch (Exception e) {
        Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show();
    }
    return null;
}

(我不知道错误是什么,因为我的AVD不起作用)

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

从Java 7开始,无需使用forName()方法。您正在以这种方式创建新实例,同时尝试使用DriverManager.getConnection()创建连接。

因此,为了解决这个问题,只需使用forName()方法删除驱动程序的实例化。

看到屏幕截图,请注意您无法从Android本地访问MySQL数据库。实际上您可以使用JDBC,但不建议这样做。请参阅此post

希望它有所帮助。