我想从我的数据库中获取一些值,但是当我点击按钮(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不起作用)
感谢您的帮助!
答案 0 :(得分:1)
从Java 7开始,无需使用forName()
方法。您正在以这种方式创建新实例,同时尝试使用DriverManager.getConnection()
创建连接。
因此,为了解决这个问题,只需使用forName()
方法删除驱动程序的实例化。
看到屏幕截图,请注意您无法从Android本地访问MySQL数据库。实际上您可以使用JDBC,但不建议这样做。请参阅此post
希望它有所帮助。