无法加载驱动程序类:com.mysql.jdbc.Driver Spring

时间:2015-10-14 11:22:06

标签: spring

spring.freemarker.cache:false


spring.datasource.url=jdbc:mysql://localhost/mydb
spring.datasource.username=user
spring.datasource.password=pass
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

即使驱动程序类名称已确定

,我也会收到此错误
  

java.lang.IllegalStateException:无法加载驱动程序类:   com.mysql.jdbc.Driver at   org.springframework.util.Assert.state(Assert.java:392)   〜[spring-core-4.2.1.RELEASE.jar:4.2.1.RELEASE] at   org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.getDriverClassName(DataSourceProperties.java:153)   〜[spring-boot-autoconfigure-1.3.0.M5.jar:1.3.0.M5] at   org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration $ NonEmbeddedConfiguration.dataSource(DataSourceAutoConfiguration.java:119)   〜[spring-boot-autoconfigure-1.3.0.M5.jar:1.3.0.M5] at   sun.reflect.NativeMethodAccessorImpl.invoke0(原生方法)   〜[na:1.8.0_60] at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)   〜[na:1.8.0_60] ......

然后继续

11 个答案:

答案 0 :(得分:23)

如果您正在使用maven,请将其添加到您的pom:

$decode = new stdClass();
$decode->Switches = array();
$decode->Switches[] = "Auswahl1";
$decode->Switches[] = "Auswahl2";
$decode->Switches[] = "Auswahl3";
$decode->Check_MK = array();
...

答案 1 :(得分:3)

我将分享更多导致此错误的原因:

  • 使用Intellij IDEA 并运行一些集成测试,我已经多次看到此错误。测试失败,并显示消息:Caused by: java.lang.IllegalStateException: Cannot load driver class: org.h2.Driver。重建项目(“构建”>“重建项目”)后,错误消失。
  • 此错误的另一个原因是损坏的JAR 。一所大学收到此错误(也在尝试运行集成测试),并且在删除.m2目录上的一些相关jar之后,该错误消失了。

答案 2 :(得分:2)

可能是您使用了不赞成使用的驱动程序类名称。我通过更新application.properties文件中的属性来解决它。

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

答案 3 :(得分:2)

只需确认以下几点即可。

  1. 如果您在代理下,请确保使用VPN连接到内部服务器(如果您正在访问DEV / STG服务器)

  2. 确保在正确的位置内添加以下依赖项,像这样

    duration = 8 infecteds = [{}]*duration #bunch of empty sets infecteds[0] = {1,2,3} I = [sum(map(len, infecteds))] #set I[0] to be the total number of infections while I[-1] >0: new_infecteds = {} for infected_set in infecteds: for infected_node in infected_set: Do some stuff with the node and its neighbors. new_infecteds gets some things added to it. recovering_nodes = infecteds.pop() infecteds.insert(0,new_infecteds) for node in recovering_nodes: update status and do any bookkeeping. I.append(sum(map(len, infecteds)))

而不是

<dependencies> <--- inside this section
<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.15</version>
</dependency>
</dependencies>

` 3.而且您不需要使用以下行

`<build> <--- Not this section
<dependencies>
<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.15</version>
</dependency>

spring.datasource.url = jdbc:mysql:// xxxxx`自动知道要提取哪个驱动程序。

答案 4 :(得分:2)

如果您使用的是IDEA和Maven,则可能会忘记重新加载所有Maven项目,这会导致依赖项没有MySQL连接器jar。这就是为什么当您运行应用程序时,会出现错误提示“ com.mysql.cj.jdbc.Driver”。

enter image description here

答案 5 :(得分:1)

我现在遇到了同样的问题,并在提供了必需的依赖项后解决了该问题,

 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.15</version>
    </dependency>

答案 6 :(得分:0)

可能有人仍需要答案(就像我之前一样)我通过添加以下依赖

解决了这个问题
<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
</dependency>

答案 7 :(得分:0)

问题的关键在于您缺少MySQL驱动程序依赖性。

其他答案中概述的方法之一是在构建工具的配置中指定它。但是,如果您不想这样做并使用IntelliJ IDEA(虽然我非常确定Eclipse有类似的东西),您也可以通过它添加依赖项。步骤进行:

  1. maven repository
  2. 下载所需的jar
  3. 在Intellij IDEA中打开您的项目
  4. 文件 - &gt;项目结构 - &gt;库
  5. 单击“新建项目库”(左侧为绿色加号),或按Alt + Insert keys
  6. 选择Java
  7. 选择你的罐子
  8. 按OK
  9. 应该是这样的:

    enter image description here

    现在您应该能够使用刚刚添加的依赖项。

    使用IntelliJ IDEA 2017.3.4测试。

答案 8 :(得分:0)

build.gradle

runtimeOnly 'mysql:mysql-connector-java'

application.yml

spring: 
    application:
        name: apevent
        version: 1.0
    datasource:
        driverClassName: com.mysql.jdbc.Driver
        url: jdbc:mysql://localhost:3306/applicaiton

答案 9 :(得分:0)

这种类型的错误基本上是针对sql版本生成的。改变你的 /或在您的Macen依赖项中添加sql版本

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

答案 10 :(得分:0)

添加以下依赖项解决了我的问题

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