Servlet在Eclipse中运行时抛出异常

问题描述 投票:0回答:1

每当我在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”或“无效的名称和密码”

java mysql eclipse servlets
1个回答
0
投票

卸载并重新安装MySQL?

不会。问题出在您的Java客户端代码中,而不是MySQL安装中。

你不应该这样做:

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

正确的方法是打电话:

 Connection con = DriverManager.getConnection(url, user, password);

使用正确的JDBC URL,用户名和密码。

这是将DriverManager用于任何JDBC 4.0+兼容驱动程序的正确方法;见javadocDriverManager类初始化将使用服务提供程序机制来查找和加载实际的驱动程序类。

您的代码不起作用的最可能原因是在Connector / J 8.0中Driver类的完全限定类名已更改。基本上,您的代码要求JVM加载不再存在的类。

如果这不能解释/修复您的问题(即您使用的是Connector / J 5.1或更早版本),那么最可能的解释是您在上面的代码的运行时类路径中没有驱动程序JAR文件。但无论如何,代码更改是可取的。

© www.soinside.com 2019 - 2024. All rights reserved.