我有一个 Spring Boot JDBC 配置 A,如下所示,效果很好,
配置A
spring.datasource.sqlserver.url=jdbc:sqlserver://localhost:1433;database=my-testdb
spring.datasource.sqlserver.user=user_101@server-product1
spring.datasource.sqlserver.password=password_101
spring.datasource.sqlserver.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
下面的配置 B 则不然。请注意,url 字符串中不包含数据库名称。数据库名称在单独的行中指定,正如人们所期望的配置一样。
spring.datasource.sqlserver.url=jdbc:sqlserver://localhost:1433
spring.datasource.sqlserver.user=user_101@server-product1
spring.datasource.sqlserver.password=password_101
spring.datasource.sqlserver.database=my-testdb
spring.datasource.sqlserver.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
无法弄清楚为什么数据库名称不能在单独的行中指定而必须在 URL 中。谁能提到为什么这不起作用?
其他配置:Spring Boot、sqljdbc41.jar
最佳答案
这就是 Microsoft 的 SQL Server/Azure JDBC 驱动程序的工作原理,数据库名称是 URL 的强制部分,而不是在“数据库”属性中给出。
从技术上讲,这可能与 SQL Server 中的数据库行为相当自治有关,它们每个都有自己的一组目录 View ,您无法在数据库之间自由切换等。
关于sql-server - 当数据库名称不在 url 中时,Microsoft SQL JDBC Spring 启动配置不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41067745/