尝试使用JDBC连接到数据库时应用程序崩溃

问题描述:

我想从数据库中获取一些值,但当单击按钮(void ButtonClick)时,我的应用程序崩溃。尝试使用JDBC连接到数据库时应用程序崩溃

这是我的代码:

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不工作)

感谢您的帮助!

+2

什么是错误? –

+2

请在此处添加代码,而不是粘贴外部链接 –

+0

Alex Mamo,我不知道错误是什么。我的AVD不工作。 –

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

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

看到屏幕截图,请注意,您无法从本机访问Android的MySQL数据库。其实你也许可以使用JDBC,但不推荐。请参阅post

希望它有帮助。

+1

我刚碰到这个问题。推荐的数据库访问方式显然是位于应用程序和数据库之间的RESTful服务。 – failedProgrammer