我是一名正在学习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);
}
}
}
答案 0 :(得分:1)
您的URL中有一个错字,它不符合标准协议。
使用:
"jdbc:mysql://localhost:3306/..."
(请注意,冒号而不是jdbc
和mysql
之间的点)。
注释
phpmyadmin
部分。我怀疑您需要删除它并直接指向您的数据库名称。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