【问题标题】:Error when load jdbc driver加载 jdbc 驱动程序时出错
【发布时间】:2015-07-09 15:12:14
【问题描述】:

嗨,我正在尝试做一个 android 应用程序,我需要连接到外部数据库,但是当我加载 jdbc 驱动程序时,系统给我一个错误,这是代码,错误出现在 Class.forName("com .mysql.jdbc.Driver"); 我查看了 jdbc 驱动程序的路径,但它是正确的,知道吗?

private void connDB(String username, String password, Intent intent){

      try{

        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://ip/dbname?", "username", "password");
        stmt = conn.createStatement();
        rs = stmt.executeQuery("SELECT * FROM id");
        rs = stmt.getResultSet();

        if (stmt.execute("SELECT * FROM id")) {
            rs = stmt.getResultSet();
        }


        while (rs.next()) {
            //get id
            id1 = rs.getInt("id");
            id.add(id1);
            //get name
            buff = rs.getString("id");
            user_name.add(buff);
            //get password
            buff = rs.getString("id");
            user_password.add(buff);
        }
        imax = id.size();

        for(i=0; i<imax; i++){
            if(MainClass.username.equals(user_name.get(i)) && MainClass.password.equals(user_password.get(i))){
                startActivity(intent);
                idUser = id.get(i);
                break;
            }
            else{

                System.out.println("error");
            }
        }

    }
        catch (Exception ex){
            System.out.println("SQLException: " + ex.getMessage());

        }
        finally {


            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException sqlEx) { } // ignore
                    rs = null;
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException sqlEx) { } // ignore
                    stmt = null;
            }
        }



java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:309)
at java.lang.Class.forName(Class.java:273)

都是系统错误

【问题讨论】:

  • 如果您告诉我们您遇到的错误,会更容易为您提供帮助。您应该编辑您的问题以添加该信息。
  • Ex.getMessage 只显示 com.mysql.jdbc.Driver 如果您可以提出其他错误消息请求,我会发布结果
  • System.out.println("SQLException: " + ex.getMessage()); 替换为ex.printStackTrace();
  • 问题可能是您在 Android 中使用 Java 驱动程序。
  • 那么你没有使用ex.printStackTrace();(除非Android做的事情与普通Java完全不同)。

标签: java android mysql jdbc driver


【解决方案1】:

试试这个:

Class.forName("com.mysql.jdbc.Driver").newInstance();

【讨论】:

  • 如果Class.forName("com.mysql.jdbc.Driver"); 抛出异常,它不会返回一个可以调用newInstance() 的Class 对象。
  • 使用.newInstance() 只是解决 10 年前(可能更久)修复的 MySQL JDBC 驱动程序中的错误。
猜你喜欢
  • 2011-04-26
  • 2011-08-24
  • 2014-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-06
  • 1970-01-01
  • 2013-05-20
相关资源
最近更新 更多