java.lang.RuntimeException: java.sql.SQLException: 找不到适合 jdb



这是我的Java代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Utils {
public static Connection createAndGetDatabaseConnection() throws SQLException, ClassNotFoundException {
return DriverManager.getConnection("jdbc:mysql://localhost/college?user=root");
}
}

从 servletdoPost方法调用上述方法时,我收到以下错误。

java.lang.RuntimeException: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/college?user=root

虽然下面的代码运行良好...

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class CreateRow {
public static void main(String[] args) {
Connection conn = null;
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost/college?user=root");
System.out.println("Connection established..");
} catch (SQLException e) {
throw new RuntimeException(e);
}
Statement stmt = null;
}
}

Utils.createAndGetDatabaseConnection()是从 servletdoPost方法调用

pom.xml中的相关依赖

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>

你只需要观察你的错误报告,这个报告类型显然是你的网址路径是错误的,而你使用的是原生JDBC,而mysql的版本是8.0.*,那么你可以检查你的驱动程序类是com.mysql.cj.jdbc.Driver,而你的代码似乎没有注册驱动程序类,我可以看看你的驱动程序类吗? 我似乎没有看到您的驱动程序类,即您可以在类中添加以下代码:

static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

最新更新