springboot配置druid出现问题

学习springboot遇到的问题

创建一个新的springboot项目,创建后使用原始的mysql数据库连接正常,但当换成druid数据源连接数据库时报错。
报错内容如下


Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class
    at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName(DataSourceProperties.java:186)
    at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.initializeDataSourceBuilder(DataSourceProperties.java:125)
    at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:48)
    at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Hikari.dataSource(DataSourceConfiguration.java:90)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:139)
    ... 97 more

pom依赖如下


<dependency>
            <groupId>org.mybatis.spring.bootgroupId>
            <artifactId>mybatis-spring-boot-starterartifactId>
            <version>3.0.0version>
        dependency>

        <dependency>
            <groupId>com.mysqlgroupId>
            <artifactId>mysql-connector-jartifactId>
            <scope>runtimescope>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
        dependency>
        <dependency>
            <groupId>com.alibabagroupId>
            <artifactId>druid-spring-boot-starterartifactId>
            <version>1.2.16version>
        dependency>

遇到的问题与https://blog.csdn.net/weixin_44537580/article/details/112029365%E7%9B%B8%E5%90%8C%EF%BC%8C%E4%BD%86%E6%98%AF%E6%88%91%E7%9A%84druid%E5%9D%90%E6%A0%87%E6%9C%AC%E6%9D%A5%E5%B0%B1%E6%98%AFdruid-spring-boot-starter
也仔细检查了yml是没有错误的,并且也已经配置到了target里,找了一天都没找到解决方法。

从错误截图看,这个错误是由于Spring Boot自动配置的数据源无法确定合适的JDBC驱动程序类而导致的。在配置数据源时,Spring Boot会尝试从classpath中查找所有可用的JDBC驱动程序类,并选择其中一个作为数据源的驱动程序。但是,如果classpath中没有任何JDBC驱动程序类,或者有多个JDBC驱动程序类,但无法确定哪一个是最适合的,则会出现这个错误。

要解决这个问题,可以尝试以下几种方法:

  1. 确认classpath中已经包含了合适的JDBC驱动程序类。如果没有,请将相应的JDBC驱动程序JAR包添加到项目的classpath中。

  2. 确认配置文件中的JDBC URL、用户名和密码等信息正确。如果这些信息不正确,也可能导致无法确定JDBC驱动程序类。

  3. 如果你使用的是Spring Boot 2.0及以上版本,可以在application.propertiesapplication.yml中显式指定JDBC驱动程序类的类名。例如:

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

    或者:

    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
    

    在这种情况下,Spring Boot将使用显式指定的驱动程序类,而不是尝试从classpath中查找。