Springboot + MySQL + 驱动类未找到

Posted

技术标签:

【中文标题】Springboot + MySQL + 驱动类未找到【英文标题】:Springboot + MySQL + Driver Class Not Found 【发布时间】:2019-05-25 09:36:02 【问题描述】:

我正在使用线程池和 mysql 做一个简单的 Spring Boot 项目,以便在添加 spring-boot-starter-jdbc 时连接到 MySQL,但出现以下错误。

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.tomcat.jdbc.pool.DataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: com.mysql.jdbc.Driver 
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.s

更新 1:

    <dependencies>
            <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

<dependency>
    <groupId>com.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>3.3</version>
</dependency>

    </dependencies>

【问题讨论】:

请分享您的 pom.xml,您可能缺少 mysql jdbc 驱动程序依赖项 请查看更新后的帖子 【参考方案1】:

您似乎缺少 mysql-connector 依赖项, 将这些添加到您的 pom 中。

马文:

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

或毕业:

compile "mysql:mysql-connector-java:*"

【讨论】:

我已经添加了【参考方案2】:

看起来你忘记添加对 MySQL 的依赖(Spring Boot 默认使用 H2 数据库),你应该在 pom.xml 中添加下一行:

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

【讨论】:

我已经添加了mysql-connector-java【参考方案3】:

首先将其包含在您的 pom 文件中。

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

其次,全新安装 maven 项目。 如果您使用的是 eclipse,请检查您的 JDK 版本和 maven(有时使用 jre 而不是 jdk,因此,虽然在控制台中一切看起来都很好,但实际上没有下载 jar) 简而言之,当 maven 构建完成时,.m2 repo 应该有这个 jar 文件。

【讨论】:

在编译时我没有收到错误,我使用了 JdbcTemplate 当然,给我链接 ***.com/a/36079859/5086633有用的链接.....***.com/questions/28821521/…...还有***.com/questions/28042426/…【参考方案4】:

当容器提供jdbc驱动时,范围“运行时”适用于单元测试和容器如tomcat等。运行独立应用程序(spring-boot)时,您应该将其删除或设置为“编译”。

【讨论】:

'mvn 依赖:树' 本地没有安装MAVEN 你可以在ide中执行这个目标。你用哪一个? 我正在使用eclipse 我可以看到所有需要的罐子都在那里

以上是关于Springboot + MySQL + 驱动类未找到的主要内容,如果未能解决你的问题,请参考以下文章

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

springboot配置mysql驱动变更

封装类未完

Spring-Kafka.RecordIntercepter类未找到。找不到RecordIntercepter类

启动 SpringBoot 应用程序时使用 JDBC 驱动程序创建 Postgres 数据库?

SpringBoot项目配置MySQL需注意的细节