我有一个Spring Boot应用程序的工作属性文件,但是每当将其转换为Yaml时,都会出现错误,提示未指定数据库URL。
我正在使用以下依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
,属性文件的配置如下(工作正常):
spring.datasource.url=jdbc:mysql://localhost:3306/db_name?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=username
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.generate-ddl=true
spring.jpa.show-sql=true
在Yaml中,我有:
spring:
datasource:
url: "jdbc:mysql://localhost:3306/db_name?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"
driver-class-name: com.mysql.cj.jdbc.Driver
username: "username"
password: "password"
jpa:
hibernate:
ddl-auto: update
generate-ddl: true
show-sql: true
我尝试使用带引号和不带引号的方法,但尝试使用driverClassName而不是driver-class-name,但是每次服务器尝试启动时,我收到以下消息:
***************************
APPLICATION FAILED TO START
***************************
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
...
答案 0 :(得分:1)
我认为您必须从
中删除"
url: "jdbc:mysql://localhost:3306/db_name?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"
并使其像
url: jdbc:mysql://localhost:3306/db_name?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
并跟随link可能会帮助
答案 1 :(得分:0)
您的pom.xml文件中是否声明了MySql驱动器?如果这样做,Spring Boot应该会自动识别您正在使用MySql并找出驱动程序类。