学习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驱动程序类,但无法确定哪一个是最适合的,则会出现这个错误。
要解决这个问题,可以尝试以下几种方法:
确认classpath中已经包含了合适的JDBC驱动程序类。如果没有,请将相应的JDBC驱动程序JAR包添加到项目的classpath中。
确认配置文件中的JDBC URL、用户名和密码等信息正确。如果这些信息不正确,也可能导致无法确定JDBC驱动程序类。
如果你使用的是Spring Boot 2.0及以上版本,可以在application.properties
或application.yml
中显式指定JDBC驱动程序类的类名。例如:
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
或者:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
在这种情况下,Spring Boot将使用显式指定的驱动程序类,而不是尝试从classpath中查找。