【问题标题】:Exception with Java-MySQL connection [duplicate]Java-MySQL连接异常[重复]
【发布时间】:2014-09-18 04:54:29
【问题描述】:

我想用 JavaMySQL 连接到数据库,但我遇到了问题。我在一个包中有一个类来连接 MySQL,所以我只需要在 jsp 文件中创建这个类的一个对象,这个包在 Source Packages 中。我也将 MySQL Java 连接器添加到我的项目库中。但是当我运行项目并尝试连接数据库时,我得到了一个异常,我不知道是什么问题。你能帮我吗? 谢谢!

NetBeans 控制台中的异常:

*坟墓:空

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at DataBase.Model_DB.connectToDB(Model_DB.java:41)
at DataBase.Model_DB.executeSelect(Model_DB.java:57)
at org.apache.jsp._004_002dLogin.registrar_jsp._jspService(registrar_jsp.java:81)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)*

以及有问题的行的页面:

private Connection connectToDB(){
    try {
        //1-Cargar driver
        Class.forName(driver);
        Connection cn = DriverManager.getConnection(direc,usuario,password);
        return cn;
    } catch (ClassNotFoundException ex) {
        Logger.getLogger(Model_DB.class.getName()).log(Level.SEVERE, null, ex);
        return null;
    } catch (SQLException ex) {
        Logger.getLogger(Model_DB.class.getName()).log(Level.SEVERE, null, ex);
        return null;
    }
}

//Funciones públicas
//Función sólo para sentencias select
public ResultSet executeSelect(String sql){
    //1-Conectamos
    Connection cn = this.connectToDB();
    try {
        //2-Realizar sentencia
        Statement st = cn.createStatement();
        return st.executeQuery(sql);
    } catch (SQLException ex) {
        Logger.getLogger(Model_DB.class.getName()).log(Level.SEVERE, null, ex);
        return null;
    }
}

【问题讨论】:

  • 项目中所需的 jar 在哪里?

标签: java mysql exception connection connector


【解决方案1】:

看起来您的类路径中缺少我的 sql 连接器。你可以从here下载它

【讨论】:

  • 我的 JavaWeb 项目的 Libraries 文件夹中有 mysql-connector-java-5.1.25。 :|
  • 好的,它包含在你的类路径中吗?
  • 你是这个意思吗?公共类 Model_DB { 私有字符串 direc,usuario,密码,驱动程序;公共 Model_DB() { this.direc="jdbc:mysql://localhost/java"; this.usuario="root"; this.password=""; this.driver="com.mysql.jdbc.Driver"; }
  • 我的意思是说应用程序正在使用您的库文件夹吗?
  • 是的,我认为,因为项目中有网页、源包、库和配置文件文件夹,而库文件夹中还有带有 mysql-connector 的 JDK 和 Apache TomCat 库。
【解决方案2】:

您尚未在类路径中添加 mysql 驱动程序 jar。从此link下载它

注意:请注意,mysql-connector jar 可以放在 tomcat/lib 目录中。这样,你的 tomcat 服务器中的所有应用程序都可以使用它。

【讨论】:

  • 是的,这让我很抓狂,我的项目的 Libraries 文件夹中有 mysql-connector-java-5.1.25。好的,我将尝试使用 tomcat/lib!谢谢!
【解决方案3】:

MySQL 驱动程序 jar 文件(MySQL 将它们称为 Connector/J)在您的类路径中不可用。这是有关如何使用该驱动程序的 MySQL 文档:http://dev.mysql.com/doc/connector-j/en/index.html(您最感兴趣的是第 3 章和第 4 章)。

【讨论】:

  • 好的,我去看看!谢谢! :)
【解决方案4】:

您应该确保在您的类路径中引用了您的 MySQL 驱动程序!这应该可以解决您的问题

【讨论】:

  • 我该怎么做,我的意思是,我在 Libraries 文件夹中有 mysql-connector,那么现在如何添加到我的类路径中?
  • 将 mysql-connector.jar 添加到您的类路径以及您的网络服务器的 lib 目录中。 Tomcat lib 路径作为示例给出 Tomcat\lib
猜你喜欢
  • 2013-12-08
  • 1970-01-01
  • 2012-10-20
  • 2014-11-15
  • 2018-11-09
  • 2012-11-03
  • 2012-12-15
  • 2018-09-10
  • 2019-05-26
相关资源
最近更新 更多