我正在尝试在我的 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/