Spring Boot 无法检测数据库类型

368yc8dk  于 2023-03-23  发布在  Spring
关注(0)|答案(6)|浏览(186)

我正在尝试使用sqljdbc4驱动程序创建一个Sping Boot 应用程序,配置如下:

spring:
  datasource:
    url: "jdbc:sqlserver://dbhost:1433;databaseName=test"
    username: dbuser
    password: dbuser
    tomcat:
      test-on-borrow: true
      validation-query: select 1

但是,当我运行时,我得到这个错误:Unable to detect database type
我正在调试BatchDatabaseInitializer,错误来自哪里,当它调用JdbcUtils.commonDatabaseName(...)时,“Microsoft SQL Server”作为产品名称返回,与任何DatabaseDriver的产品名称都不匹配。
我试过其他司机,但他们都有同样的问题。
是窃听器吗?
我使用的是Sping Boot 1.5.1-Release。

cnjp1d6j

cnjp1d6j1#

如果您使用spring-batch创建批处理作业,则需要在www.example.com文件中正确配置spring.datasource配置application.properties。

spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/batch_repo
spring.datasource.username=batch_username
spring.datasource.password=batch_password
spring.datasource.platform=mysql

spring.batch.initialize-schema=always

***spring.batch.initialize-schema***当配置为“always”时,将在您的schema中创建必要的spring batch相关表。

或者,如果你将它赋值为“never",它将不创建表。在这两种情况下,你的错误都应该得到解决。

dfddblmv

dfddblmv2#

将其添加到main函数中的Application文件中。

@SpringBootApplication(
        exclude = {
                BatchAutoConfiguration.class,
                JmxAutoConfiguration.class
        },
        excludeName = {
                "org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration",
        }
)
tkqqtvp1

tkqqtvp13#

在props文件中尝试spring.batch.jdbc.initialize-schema=never。我在spring-boot v2.6.x中使用了它。

zdwk9cvp

zdwk9cvp4#

将其放入application. properties. spring.batch.schema=classpath:org/springframework/batch/core/schema-sqlserver.sql中

ars1skjm

ars1skjm5#

检查您的application.properties文件如下。
注意:springbatch是我的数据库名称

spring.datasource.url=jdbc:mysql://localhost:3306/springbatch
spring.datasource.username=root
spring.datasource.password=Vishal@123
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.batch.jdbc.initialize-schema=always
qmelpv7a

qmelpv7a6#

在将spring更新到2.7后,我在单元测试中遇到了类似的问题。我添加了这个来解决这个问题:

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.integration.IntegrationAutoConfiguration, org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration

相关问题