我想从数据库中获取一些值,但是当我单击按钮 (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 无法工作)
感谢您的帮助!
最佳答案
从 Java 7 开始,无需使用 forName()
方法。您将以这种方式创建一个新实例,同时尝试使用 DriverManager.getConnection()
创建连接。
因此,为了解决这个问题,只需使用 forName()
方法删除驱动程序的实例化即可。
查看屏幕截图,请注意您无法从 Android native 访问 MySQL 数据库。实际上您也许可以使用 JDBC,但不推荐。请看这个post
希望有帮助。
关于java - 尝试使用 JDBC 连接到数据库时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45927462/