class not found com.mysql.jdbc.driver

时间:2013-04-14 19:23:47

标签: java mysql exception servlets jdbc

我的项目的文件结构是:

         -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服务器中访问dao.qwerty中的coreServlet.java时。我收到class not found exception com.mysql.jdbc.driverdao.qwerty的值打印为空。我在哪里做错了?

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

当您的代码尝试执行以下行时,抛出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目录中。

可以从http://dev.mysql.com/downloads/connector/j/

下载java的mysql连接器

答案 2 :(得分:1)

您尚未在路径中设置mysql-connector。请先完成其他所有工作

  

什么是JConnector

Java不知道SQL所以你想要使用sql驱动程序执行的每个语句都将转换为sql构造,并且我的mysql返回的结果也会转换为java可理解的构造。

希望有所帮助