找不到适用于jdbc.mysql的驱动程序

时间:2018-10-03 13:04:20

标签: java mysql sql netbeans

我是一名正在学习Java课程的学生,但我被无法解决的错误所困扰。

上述错误是

No suitable driver found for jdbc.mysql

我已经导入了Library并在代码中指定了它,我还尝试了用户在stackoverflow上发布的众多解决方案,但是什么也没有。如果有人有任何进一步的建议,将不胜感激

我的代码

(由于80被PID4“系统”占用,我不得不更改Xampp服务器conf文件以监听8080端口)

public class DBConnect {

  String DB_URL = "jdbc.mysql://localhost:3306/phpmyadmin/BCStationary?";

  public DBConnect() throws ClassNotFoundException {
    Connection conn = null;

    try {
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      Class.forName("com.mysql.jdbc.Driver");
      conn = DriverManager.getConnection(DB_URL, "root", "");
      System.out.println("Connection Successful");
    } catch (SQLException ex) {
      System.out.println("Conn error ");
      Logger.getLogger(DBConnect.class.getName()).log(Level.SEVERE, null, ex);
    }
  }
}

3 个答案:

答案 0 :(得分:1)

您的URL中有一个错字,它不符合标准协议。

使用:

"jdbc:mysql://localhost:3306/..."

(请注意,冒号而不是jdbcmysql之间的点)。

注释

  • 如果不使用参数,则不需要在最后加上问号。 但是,如果您的数据库需要身份验证等,则将需要属性或类似GET的参数。
  • 我不确定phpmyadmin部分。我怀疑您需要删除它并直接指向您的数据库名称。
  • 您不需要显式注册驱动程序。在Java <= 6中,您仍然需要反射Class.forName调用。

答案 1 :(得分:0)

Class.forName("com.mysql.jdbc.driver");应该在DriveManager.registerDriver之前。

DriveManager.registerDriver也不需要使用。

您可以通过以下方法简单地进行操作:

  public DBConnect() throws ClassNotFoundException {
    Connection conn = null;

    try {
      //Call to .newInstance() is a work around for some
      // broken java instances.
      Class.forName("com.mysql.jdbc.Driver").newInstance();
      conn = DriverManager.getConnection(DB_URL, "root", "");
      System.out.println("Connection Successful");
    } catch (SQLException ex) {
      System.out.println("Conn error ");
      Logger.getLogger(DBConnect.class.getName()).log(Level.SEVERE, null, ex);
    }
  }

如果您使用的是最新的mysql驱动程序(mysql-connector 8.0),则该类为com.mysql.cj.jdbc.Driver

https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-usagenotes-connect-drivermanager.html

答案 2 :(得分:0)

 try{
    Class.forName("com.mysql.jdbc.Driver");
       Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306  /dbname","UserName","Password");

     }catch(Exception e){e.printStackTrace();}

    please add mysql-3.0.5-connector jar  file
   there is not required to registerDriver and other