每当我在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”或“无效的名称和密码”
答案 0 :(得分:0)
要卸载并重新安装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文件运行时类路径。但是无论如何建议更改代码。