【问题标题】:JDBC Driver class not found: com.mysql.jdbc.Driver找不到 JDBC 驱动程序类:com.mysql.jdbc.Driver
【发布时间】:2012-02-05 11:15:26
【问题描述】:

我正在使用 maven spring 和 hibernate 开发一个 Web 应用程序,我需要使用 hibernate 创建架构,我在 pom.xml 中有以下内容以连接到 MySQL 5.5 数据库。

    <!-- MySql 5.5 Connector -->   
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.15</version>
    </dependency>

这在Maven Dependencies 下的Libraries 中导入了mysql-connector-java-5.1.15.jar,但是当我尝试连接到数据库时它给了我Exception in thread "main" org.hibernate.HibernateException: JDBC Driver class not found: com.mysql.jdbc.Driver

我已经这样做了无数次,但是当我不习惯使用 Maven 来管理我的依赖项和构建项目时,我就这样做了。我以前只是在 Eclipse IDE 中的 Dynamic Web Projectlib 文件夹中拥有相同的 jar 文件。

有人可以告诉我我在这里缺少什么以及在构建路径中还需要什么?

谢谢。

【问题讨论】:

    标签: jdbc web-applications mysql5 hibernate3


    【解决方案1】:

    首先,我需要连接到 MySQL 5.5 的 jar 应该是 mysql-connector-java-5.1.15-bin.jar 而不是 mysql-connector-java-5.1.15.jar。其次,这个 jar 在 maven 存储库中不可用,因此我需要手动将其添加到本地 maven 存储库,然后将其作为依赖项添加到我的 pom.xml 中。

    通过

    mysql-connector-java-5.1.15-bin.jar添加到本地maven仓库
    mvn install:install-file -Dfile=C:\Libraries\mysql-connector-java-5.1.15-bin\mysql-connector-java-5.1.15-bin.jar -DgroupId=mysql -DartifactId=mysql-connector-java -Dversion=5.1.15-bin -Dpackaging=jar
    

    然后将以下依赖添加到项目的pom.xml

        <!-- MySql 5.5 Connector -->   
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.15-bin</version>
        </dependency> 
    

    【讨论】:

    • 来自 Maven 存储库的没有 -bin 后缀的 JAR 工作得很好,我自己使用的是 5.1.20。也许不是 JAR 的名称,这真的无关紧要,而是从您使用的第一个到第二个的内容发生了变化。澄清这一点可能会使答案更好一些。
    【解决方案2】:

    感谢上面的回答 - 只是对 NetBeans 用户的评论: (名称将替换为您的版本)

    1. mysql JAR可以下载here
    2. mvn 可执行文件位于c:\Program Files\NetBeans 7.2.1\java\maven\bin
    3. 运行set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_10
    4. 那么上面的命令就可以工作了:mvn install:install-file -Dfile=mysql-connector-java-5.1.15-bin.jar -DgroupId=mysql -DartifactId=mysql-connector-java -Dversion=5.1.15-bin -Dpackaging=jar
    5. 已安装的软件包可以在您的主文件夹的 m2 存储库中找到

    【讨论】:

      【解决方案3】:

      我的工作解决方案

       <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.18</version>
      </dependency>
      

      将上述依赖项添加到 pom.xml 对我有用...

      【讨论】:

        【解决方案4】:

        解压缩生成的 JAR 文件。里面有一个WEB-INF文件夹,然后检查这个WEB-INF/lib中是否存在mysql-connector-java-5.1.15.jar。

        【讨论】:

        • 应用结构是maven为java webapp制作的,为什么maven的依赖jar要放在WEB-INF里面的lib文件夹下?你不是指解压后的mysql-connector-java-5.1.15.jar 中的 WEB-INF 文件夹,对吗?我错过了什么?
        • 即使我通过将 mysql-connector-java-5.1.15.jar 添加到构建路径来手动配置构建路径,它也会给我同样的错误,我不确定是否应该使用 maven webapp 项目作为使用 maven,我看到了 Java Resources 中的依赖项。
        • 我只是在生成架构,我不认为WEB-INF中的lib文件夹应该与它有什么关系?我不敢相信我被困住了。
        • 我的意思是解压后的 web-app 中的 WEB-INF/lib 文件夹。
        • 我错误地使用了错误的 jar 文件。我已经让它工作了。谢谢:)
        【解决方案5】:

        将以下代码添加到 pom.xml 文件中

            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.6</version>
            </dependency>
        

        【讨论】:

          【解决方案6】:

          使用SELECT version()检查MySql版本 然后在pom.xml中检查mysql版本的依赖关系

          <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>8.0.14</version>
          </dependency>
          

          application.properties 文件:

          spring.datasource.url=jdbc:mysql://localhost:3306/db_name
          
          spring.datasource.username=root
          spring.datasource.password=
          
          spring.datasource.testWhileIdle=true
          spring.datasource.validationQuery = SELECT 1
          spring.datasource.driver-class-name=com.mysql.jdbc.Driver
          spring.jpa.show-sql=true
          
          spring.jpa.hibernate.ddl-auto=update
          
          spring.jpa.properties.hibernate.dialact=org.hibernate.dialact.MySQL5Dialact 
          

          【讨论】:

            【解决方案7】:

            如果您使用的是 TOMCAT,请将 .jar 文件放在文件夹 LIB (/lib) 中。 不要忘记重启服务器。

            【讨论】:

              猜你喜欢
              • 2013-07-05
              • 2011-09-16
              • 1970-01-01
              • 2016-08-18
              • 2012-04-23
              • 1970-01-01
              • 2012-08-24
              • 1970-01-01
              • 2013-07-08
              相关资源
              最近更新 更多