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

ClassNotFoundException:oracle.jdbc.driver.OracleDriver

如何解决 ClassNotFoundException?

ClassNotFoundException / mysql jdbc驱动程序[重复]