簡體   English   中英

Servlet在運行時在Eclipse中引發異常

[英]Servlet Throws Exception at Runtime in Eclipse

每當我在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”或“ invalid name and password”

卸載並重新安裝MySQL?

不。問題出在您的Java客戶端代碼中,而不是MySQL安裝中。

您不再應該這樣做:

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

正確的方法是只調用:

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

使用正確的JDBC URL,用戶名和密碼。

這是對任何兼容JDBC 4.0+的驅動程序使用DriverManager的正確方法。 參見javadoc DriverManager類的初始化將使用服務提供者機制來查找和加載實際的驅動程序類。

您的代碼無法正常工作的最可能原因是在Connector / J 8.0中, Driver類的標准類名已更改。 基本上,您的代碼要求JVM加載不再存在的類。

如果這不能解釋/解決您的問題(即您正在使用Connector / J 5.1或更早的版本),則最可能的解釋是您在上述代碼的運行時類路徑上沒有驅動程序JAR文件。 但是無論如何建議更改代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM