类未找到异常 com.mysql.jdbc.driver [重复]

Posted

技术标签:

【中文标题】类未找到异常 com.mysql.jdbc.driver [重复]【英文标题】:class not found exception com.mysql.jdbc.driver [duplicate] 【发布时间】:2013-04-06 20:47:28 【问题描述】:

我的项目的文件结构是:

         -src
            |
           -pkg
            |
             -CoreServlet.java(servlet)
             -Main.java
             -Core.java(jdbc code is here)

core.java 类:

package com.pkg;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class core
    private Connection connect = null;
    private Statement statement =null;
    private PreparedStatement preparedStatement = null;
    private ResultSet resultSet = null;
    String qwerty;

    public void readDataBase() 
        String userName = "ansh";
        String password = "12345";
        try 
            Class.forName("com.mysql.jdbc.Driver");
            connect = DriverManager.getConnection("jdbc:mysql://localhost/glbitm", userName,password);
            statement = connect.createStatement();
            resultSet = statement.executeQuery("select * from teachers");
            resultSet.next();      
            qwerty = resultSet.getString(1);

            catch (Exception e) 
            System.out.println(e);
        
    


coreServlet.java 类:

   package com.pkg;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class coreServlet extends HttpServlet 
  /**
     * 
     */
    private static final long serialVersionUID = 1L;


public void doGet(HttpServletRequest request, 
  HttpServletResponse response)
  throws ServletException,IOException
        core dao = new core();
        dao.readDataBase();
  response.setContentType("text/html");
  PrintWriter pw = response.getWriter();
  pw.println("<html>");
  pw.println("<head><title>Hello World</title></head>");
  pw.println("<div>"+dao.qwerty+"</div>");
  pw.println("<body>");
  pw.println("<h1>Hello World</h1>");
  pw.println("</body></html>");
  

当我在我的 tomcat 服务器中的 coreServlet.java 中访问 dao.qwerty 时。我得到class not found exception com.mysql.jdbc.driver 并且dao.qwerty 的值被打印为空。我哪里做错了?

【问题讨论】:

您的库中似乎没有 jdbc 驱动程序 @Mohammad 我的项目目录中有那个... 您的服务器需要 JConnector 驱动程序 WEB-INF/lib 是您放置库的位置,该文​​件是否已经存在。 @MohammadAdil 是的,文件结构完全相同... 【参考方案1】:

你还没有在你的路径中设置mysql-connector。首先设置它,然后一切都会完成

JConnector 是什么?

Java 不知道 SQL,因此您要使用 sql 驱动程序执行的每条语句都将转换为 sql 结构,并且我的 mysql 返回的结果也将转换为 java 可理解的结构。

希望对你有帮助

【讨论】:

反对者?想留下回复吗?【参考方案2】:

您需要在类路径中添加 mysql 连接器。

http://mirrors.ibiblio.org/pub/mirrors/maven2/mysql/mysql-connector-java/5.1.4/mysql-connector-java-5.1.4.jar

此连接器 jar 充当数据库和数据流应用程序之间的中介。您可以从 jar 中提取类文件并查看详细信息。

【讨论】:

【参考方案3】:

当您的代码尝试执行以下行时,将引发 java.lang.ClassNotFoundException Class.forName("com.mysql.jdbc.Driver").newInstance();

这是一个经过检查的异常,总是需要在 try/catch 中捕获,或者如果 try/catch 未实现,则需要在方法中声明此异常。

此线程中提供了多种解决方案,但根据我的经验,如果您能够使用数据源资源管理器从 eclipse 连接到数据库,那么最可能的原因是“mysql-connector-java-5.1.28-bin .jar" 不会复制到你的 tomcat 的 lib 目录中。

java的mysql连接器可以从http://dev.mysql.com/downloads/connector/j/下载

【讨论】:

以上是关于类未找到异常 com.mysql.jdbc.driver [重复]的主要内容,如果未能解决你的问题,请参考以下文章

类未找到异常 com.mysql.jdbc.driver [重复]

exec-maven-plugin 给出类未找到异常

JDBC连接数据库

Hazelcast 谓词/ SQL 查询类未找到

一次JDBC支持表情存储的配置过程

在 Windows 7 中设置路径 Connector/J