[英]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.