java - Android JDBC 不工作 : ClassNotFoundException on driver

标签 java android mysql jdbc

我正在尝试在我的 Android 应用程序中使用 JDBC 连接到远程数据库以执行插入、查询等操作。我已成功连接并在不同的 JAVA 项目中完成了这些操作。所以我想既然 Android 是 Java,我可以移植相关代码,为驱动程序添加相同的构建路径等。但它给了我错误:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

我真的不认为这是一个代码问题,因为相同的代码在 Java 项目中工作(我只是在 main() 中执行)。但在这里供引用是:

String url = "jdbc:mysql://localhost:3306/eventhub_test"; //
    String user = "root"; 
    String pass = "";

 SQLUtils sqlu = new SQLUtils(url, user, pass);

//我做的SQLUtils类:

public class SQLUtils {


private String CONNECTION_URL;
private String user;
private String pass;
private java.sql.Statement stmt; 
private java.sql.Connection conn;

public SQLUtils(String conn_url, String user, String pass) {
    this.CONNECTION_URL = conn_url; 
    this.user = user;
    this.pass = pass; 
}


public void init() throws IllegalAccessException, InstantiationException, ClassNotFoundException, SQLException {

    Class.forName ("com.mysql.jdbc.Driver").newInstance ();
    conn = DriverManager.getConnection(CONNECTION_URL, user, pass);
    stmt = conn.createStatement();

}
}

所以我在这里真的很困惑。 JDBC 不适用于 Android 吗?如果是这样,请告诉我对于远程 MySQL 数据库访问我应该寻找哪些替代方案。

谢谢。

最佳答案

Does JDBC not work with Android?

JDBC 在 Android 上很少使用,我当然不会推荐它。

恕我直言,JDBC 专为高带宽、低延迟、高度可靠的网络连接而设计(例如,桌面到数据库服务器、Web 应用程序服务器到数据库服务器)。移动设备很少提供这些功能,而且没有一个是始终如一的。

If so, tell me what alternatives I should look into for remote MySQL database access.

围绕您的数据库创建 Web 服务并从 Android 访问它。

附带的好处是,您可以提高安全性(相对于让数据库保持打开状态)、可以从客户端卸载一些业务逻辑、可以更好地支持其他平台(例如,Web 或基于 Web 的移动框架)等。

关于java - Android JDBC 不工作 : ClassNotFoundException on driver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7221620/

相关文章:

image-processing - 如何在 Java 中从实时网络摄像头进行面部识别?

java - 与java交互时如何在clojure中显式转换

android - 为 Qt 项目的多个架构生成一个 APK

android - 使用多个 APK 分阶段发布

java - 强制魔法常数

mysql - 从 MySql 中字段值的开头删除一个字符

java - 让 jQuery GET 与 Spring MVC 后端完美配合

带有循环对象的Java ArrayList

php - 如何使用 PHP 的 PDO 和 MySQL 选择具有与值匹配的列且位于日期范围之间的行?

php - 如何在 laravel where 条件中传递数组?