请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Failed to load driver class com.mysql.cj.jdbc.Driver

  • mysql 5.7
  • mapper 4.1.5
  • mysql-connector-java 5.1.48

写完testController后,mvn clean install内的test报错,内容是找不到 com.mysql.cj.jdbc.Driver
但我的版本及配置多次检查后,没有写过任何com.mysql.cj.jdbc.Driver的信息,这是为何呢。。。

图片描述

图片描述

正在回答 回答被采纳积分+3

7回答

大目 2019-10-28 23:58:36

您好,我这边试了很久,一直没有能够复现:

依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
    <version>5.1.47</version>
</dependency>

配置:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/user_center?useUnicode=true&characterEncoding=utf8&useSSL=false
    username: root
    password: root123
    driver-class-name: com.mysql.jdbc.Driver

能否帮忙把代码托管到GitHub或者Gitee,我来看看哈。


另外,不建议用Spring Boot 2.2版本进行测试。原因有2:

  1. 2.2.0版本和课上的2.1.5版本有一定差异,容易采坑。不说别的,数据源的配置就不一样哈

  2. Spring Cloud Alibaba和Spring Boot有一定的版本映射关系,在4-2节有详解。目前即使最新的Spring Cloud Alibaba 2.1.0,也只支持Spring Boot 2.1.x

建议严格按照课上选择的版本玩哦,在最近(双十一之前),课程就会更新到最新的版本,并且未来也会持续更新。帮助大家避免采坑的哈。


0 回复 有任何疑惑可以回复我~
  • 提问者 ahak #1
    #    hikari:
    #      username: 123
    #      password: 123
    #      # >= 6.x com.mysql.cj.jdbc.Driver
    #      # <= 5.x com.mysql.jdbc.Driver
    #      driver-class-name: com.mysql.jdbc.Driver
    
    
    
    是这组配置,使用hikari配置时候有问题(后面我贴的配置是我google后注释了hikari),目前不解的是hikari的。感谢老师深夜回复(太晚了没深究hikari的版本、特性、是什么,明天看看)
    回复 有任何疑惑可以回复我~ 2019-10-29 00:01:21
  • 提问者 ahak #2
    我下载了hikari的sourceCode,从配置到报错逐层debug,貌似某一层级是根据com.mysql.cj.jdbc.Driver 这个格式去取配置的,配置的com.mysql.jdbc.Driver没有生效。我本地以及平时用mysql5.7比较多,故而为了后面考虑想使用5.7,查看了connector的best practice,貌似8.x是为了兼容mysql的8.x,推荐5.7mysql使用的依旧是5.1.x的connector
    回复 有任何疑惑可以回复我~ 2019-10-29 00:04:14
提问者 ahak 2019-10-28 23:13:58
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.861 s <<< FAILURE! - in com.yaopig.usercenter.UserCenterApplicationTests
[ERROR] contextLoads  Time elapsed: 0.001 s  <<< ERROR!
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'testController': Unsatisfied dependency expressed through field 'userMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userMapper' defined in file [/private/var/www/http/user-center/target/classes/com/yaopig/usercenter/dao/user/UserMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [tk/mybatis/mapper/autoconfigure/MapperAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userMapper' defined in file [/private/var/www/http/user-center/target/classes/com/yaopig/usercenter/dao/user/UserMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [tk/mybatis/mapper/autoconfigure/MapperAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [tk/mybatis/mapper/autoconfigure/MapperAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionFactory' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource
Caused by: org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource
Caused by: java.lang.IllegalStateException: Unable to set value for property driver-class-name
Caused by: java.lang.reflect.InvocationTargetException
Caused by: java.lang.RuntimeException: Failed to load driver class com.mysql.cj.jdbc.Driver in either of HikariConfig class loader or Thread context classloader


0 回复 有任何疑惑可以回复我~
提问者 ahak 2019-10-28 23:11:37
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/user_center?useUnicode=true&characterEncoding=utf8&useSSL=false
    username: 123
    password: 123
    driver-class-name: com.mysql.jdbc.Driver
#    hikari:
#      username: 123
#      password: 123
#      # >= 6.x com.mysql.cj.jdbc.Driver
#      # <= 5.x com.mysql.jdbc.Driver
#      driver-class-name: com.mysql.jdbc.Driver

替换调hikari后可以通过了。。难道是版本问题,5xx没有cj的不可以用hikari?

0 回复 有任何疑惑可以回复我~
提问者 ahak 2019-10-28 23:06:56

报错的异常都集中在 hikari那里。感觉是DataSource这里不可以使用?

0 回复 有任何疑惑可以回复我~
  • 大目 #1
    帮忙贴出来哈,从报错的开始,一直复制到报错结束即可。
    回复 有任何疑惑可以回复我~ 2019-10-28 23:07:27
  • 提问者 ahak 回复 大目 #2
    字数。。超了 ?
    回复 有任何疑惑可以回复我~ 2019-10-28 23:12:20
提问者 ahak 2019-10-28 23:05:58
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/user_center?useUnicode=true&characterEncoding=utf8&useSSL=false
    hikari:
      username: 123
      password: 123
      # >= 6.x com.mysql.cj.jdbc.Driver
      # <= 5.x com.mysql.jdbc.Driver
      driver-class-name: com.mysql.jdbc.Driver


0 回复 有任何疑惑可以回复我~
提问者 ahak 2019-10-28 23:05:20
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.yaopig</groupId>
    <artifactId>user-center</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>user-center</name>
    <description>aaa user-center</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.5</version>
        </dependency>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.6</version>
                <configuration>
                    <configurationFile>
                        ${basedir}/src/main/resources/generator/generatorConfig.xml
                    </configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.48</version>
                    </dependency>
                    <dependency>
                        <groupId>tk.mybatis</groupId>
                        <artifactId>mapper</artifactId>
                        <version>4.1.5</version>
                    </dependency>
                </dependencies>
            </plugin>

        </plugins>
    </build>

</project>


0 回复 有任何疑惑可以回复我~
大目 2019-10-28 23:04:30

您好,帮忙提供下:

  1. 项目的pom.xml

  2. 项目的配置文件application.yml

  3. 完整的异常栈


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信