Android JDBC无法正常工作:驱动程序上的ClassNotFoundException

Android JDBC无法正常工作:驱动程序上的ClassNotFoundException

我正在尝试在我的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数据库访问的替代方案。

谢谢。


牧羊人nacy
浏览 580回答 3
3回答

德玛西亚99

暂且不谈有效的异议,你可以让它发挥作用。首先确保你在构建路径中有一个有效的驱动程序jar,我用过mysql-connector-java-5.1.7-bin.jar其次,如果你在模拟器中尝试它并且你的数据库在你的开发机器上,那么'localhost'在URL中是不好的。你需要'10 .0.2.2'我的网址是:String url = "jdbc:mysql://10.0.2.2/test";测试是我的数据库名称。我有一张名为“书籍”的桌子,里面有一个“标题”栏目以下代码适用于我:public void init() throws IllegalAccessException, InstantiationException,         ClassNotFoundException, SQLException {     Class.forName("com.mysql.jdbc.Driver").newInstance();     try {         conn = DriverManager.getConnection(CONNECTION_URL, user, pass);     } catch (java.sql.SQLException e1) {         e1.printStackTrace();     }     try {         stmt = conn.createStatement();         ResultSet rs = stmt.executeQuery("SELECT title FROM books");         String entry;         while (rs.next()){             entry = rs.getString(1);         }         rs.close();         stmt.close();         conn.close();     } catch (java.sql.SQLException e) {         e.printStackTrace();     }}单步执行调试器,我会在String条目中看到标题
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android
Java