ClassNotFoundException / mysql jdbc驱动程序[重复]
Posted
技术标签:
【中文标题】ClassNotFoundException / mysql jdbc驱动程序[重复]【英文标题】:ClassNotFoundException / mysql jdbc driver [duplicate] 【发布时间】:2018-03-11 08:09:34 【问题描述】:我已经创建了一个登录和注册页面,但是当点击创建帐户按钮时,数据没有被存储到数据库中。它给出了一个例外,说
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver"
我已经在我的项目中添加了 mysql jar 文件。
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/loginandregister")
public class loginandregister extends HttpServlet
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
String options=request.getParameter("button");
System.out.println(options);
PrintWriter pw=response.getWriter();
if(options.equals("LOGIN"))
String username=request.getParameter("loginid");
String password=request.getParameter("loginpassword");
try
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/loginclass","root","root");
PreparedStatement login=conn.prepareStatement("select * from user_info where username=? and userpassword=?");
login.setString(1, username);
login.setString(2, password);
ResultSet rs=login.executeQuery();
if(rs.next())
pw.println("Welcome");
pw.println("Welcome"+username);
else
pw.println("Error");
catch (Exception e)
e.printStackTrace();
if(options.equals("CREATE ACCOUNT"))
try
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/loginclass","root","root");
PreparedStatement register=conn.prepareStatement("insert into user_info values (?,?,?,?,?,?)");
String firstname=request.getParameter("fname");
String lastname=request.getParameter("lname");
String email=request.getParameter("email");
String phone=request.getParameter("phone");
String uname=request.getParameter("uname");
String pass=request.getParameter("password");
register.setString(1, firstname);
register.setString(2, lastname);
register.setString(3, email);
register.setString(4, phone);
register.setString(5, uname);
register.setString(6, pass);
register.executeUpdate();
// try
catch (Exception e)
e.printStackTrace();
//catch
// if create acc.
// dopost
//class
【问题讨论】:
尝试清理并构建您的项目。还有你用的是哪个服务器? 我确实清理了我的项目......没有任何改变......我正在使用 tomcat 服务器@hiren 您已经 11 年不需要这行代码了,但您确实需要相关的 JAR 在 CLASSPATH 上。 @EJP 这并不完全正确:如果 JDBC 驱动程序与 Web 应用程序一起部署(它在 WAR 内部),则需要显式加载它。仅当驱动程序位于初始(系统)类路径上时,自动加载驱动程序才有效。如果它仅在上下文类路径上,则不会。 【参考方案1】:我认为您需要将jar
添加到您的tomcat
目录的lib
文件夹中。在那里添加jar
并重新启动服务器。
这可能对你有用。
【讨论】:
成功了....非常感谢 很高兴知道。如果有帮助,请接受答案。如果可能,也请投票。谢谢。以上是关于ClassNotFoundException / mysql jdbc驱动程序[重复]的主要内容,如果未能解决你的问题,请参考以下文章
ClassNotFoundException:org.sqlite.JDBC
ClassNotFoundException和NoClassDefFoundError
ClassNotFoundException和NoClassDefFoundError