每当我在 eclipse 中运行 servlet 时,它都会显示:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
我已经正确连接了 jar 文件并在构建路径配置中设置了路径。我还能做些什么吗?
卸载并重新安装MySQL?
{
[...]
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection
("jdbc:mysql://localhost:3306/example","root","root");
String qr="select * from details where name=? and pwd=?";
PreparedStatement ps=con.prepareStatement(qr);
ps.setString(1, name);
ps.setString(2, pwd);
ResultSet rs=ps.executeQuery();
if(rs.next())
{
out.println("home");
}
else
{
out.println("Invalid name and password");
}
con.close();
} catch(Exception e) {
out.println(e);
}
我期望输出“home”或“无效的名称和密码”
最佳答案
Uninstall and re-install MySQL?
没有。问题出在您的 Java 客户端代码中,而不是 MySQL 安装中。
您不应该再这样做:
Class.forName("com.mysql.jdbc.Driver");
正确的方法是直接调用:
Connection con = DriverManager.getConnection(url, user, password);
使用正确的 JDBC url、用户名和密码。
这是对任何 JDBC 4.0+ 兼容驱动程序使用 DriverManager
的正确方法;请参阅javadoc 。 DriverManager
类初始化将使用服务提供者机制来查找并加载实际的驱动程序类。
您的代码不起作用的最可能原因是 Driver
类的完全限定类名在 Connector/J 8.0 中已更改。基本上,您的代码要求 JVM 加载不再存在的类。
如果这不能解释/解决您的问题(即您使用的是 Connector/J 5.1 或更早版本),那么最可能的解释是您在上述代码的 上没有驱动程序 JAR 文件运行时类路径。但无论如何,更改代码是可取的。
关于java - Servlet 在 Eclipse 中运行时抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55415304/