我是Spring boot的新手。我收到此错误
Cannot determine embedded database driver class for database type NONE
每当试图运行我的spring-boot启动web应用程序时(我正在尝试测试执行器和hal浏览器)。在过去八个小时左右的时间里,我在google / stackoverflow上尝试了几个建议。但似乎并不适合我。我仍然在收到另一个错误。
首先尝试: 我遵循了journaldev
中提到的两种方法如果我使用第一种方法,即注释我的主应用程序类
使用@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class })
,我收到此错误:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'javax.sql.DataSource' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
如果我使用第二种方法,我仍然会收到另一个错误:
Binding to target [Bindable@7c551ad4 type = com.zaxxer.hikari.HikariDataSource, value = 'provided', annotations = array<Annotation>[[empty]]] failed:
Property: driverclassname
Value: com.mysql.jdbc.Driver
Origin: "driverClassName" from property source "source"
Reason: Unable to set value for property driver-class-name
我还尝试了 Andy Wilkinson的 suggestion并添加了
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost/mydb
到我的 application.properties 文件但是我收到了这个错误:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Unsatisfied dependency expressed through constructor 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 java.lang.IllegalStateException: Cannot load driver class: com.mysql.jdbc.Driver
我也试过提供用户名和密码(不确定是否需要,因为我没有尝试访问我的数据库),但是对我来说不起作用。如果需要,我也可以提供我的pom配置。
答案 0 :(得分:5)
以下配置对我来说非常合适 -
application.properties -
error: invalid operand for instruction
or
while in macro instantiation
pom.xml -
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/rolb
spring.datasource.username=root
spring.datasource.password=root123
spring.datasource.initialize=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
如果需要,您还可以下载我的示例应用程序的源代码进行比较 - https://github.com/atulajoshi24/springboot-rest.git
答案 1 :(得分:4)
您说您不需要访问数据库,因此您应该可以使用
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class })
并删除所有包含数据源的autowirings。 你得到的例外
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'javax.sql.DataSource' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
说你试图在某个地方自动装配数据源,但你没有配置一个(因为你排除了它)。只需删除自动装配的数据源即可。
如果你确实需要使用数据库,那么mysql驱动程序似乎存在问题 - 请确保添加了一个作为依赖项。
答案 2 :(得分:0)
您需要在pom文件中添加JDBC DRIVER依赖项,然后才能工作
答案 3 :(得分:0)
确保pom.xml中存在mysql依赖项,并注释h2依赖项
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>