gpt4 book ai didi

java - 将 spring-boot 连接到 azure sql server 时出现问题

转载 作者:行者123 更新时间:2023-12-02 12:24:22 25 4
gpt4 key购买 nike

我有一个 spring-boot 项目,在其中尝试连接到我刚刚创建的 azure sql 数据库。我第一次尝试它时,我在 com.microsoft.sqlserver groupId 下使用 sqljdbc4,每次我尝试启动它时,我都会遇到安全错误,谷歌搜索后发现它已通过使用 6+ 版本修复。然后我安装了它并设置了依赖项

    <dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>slqjdbc6</artifactId>
<version>6.2.1</version>
</dependency>

现在我不再有这个错误,而是我有org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration”的bean时出错:通过构造函数参数0表达的不满足的依赖关系;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建类路径资源中定义的名称为“dataSource”的bean时出错[org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]:通过工厂方法实例化Bean失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [org.apache.tomcat.jdbc.pool.DataSource]:工厂方法“dataSource”抛出异常;嵌套异常是java.lang.IllegalStateException:无法加载驱动程序类:com.microsoft.sqlserver.jdbc.SQLServerDriver

依赖关系

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>slqjdbc6</artifactId>
<version>6.2.1</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

应用程序属性

spring.h2.console.enabled=true
spring.h2.console.path=/console
spring.datasource.platform=h2

# production profile
spring.datasource.url=jdbc:sqlserver://spring-boot-intro.database.windows.net:1433;database=spring-boot-intro;user=fabio@spring-boot-intro;password=*my password*;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;
spring.datasource.username=fabio
spring.datasource.password=*my password*
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver

# crud
spring.jpa.hibernate.ddl-auto=create-drop

.m2 存储库下的 slqjdbc6

C:\Users\*user*\.m2\repository\com\microsoft\sqlserver\slqjdbc6\maven-metadata-local.xml
C:\Users\*user*\.m2\repository\com\microsoft\sqlserver\slqjdbc6\6\_remote.repositories
C:\Users\*user*\.m2\repository\com\microsoft\sqlserver\slqjdbc6\6\slqjdbc6-6.2.1.jar
C:\Users\*user*\.m2\repository\com\microsoft\sqlserver\slqjdbc6\6\slqjdbc6-6.2.1.pom

最佳答案

您将该驱动程序安装到哪里? SQL Server 驱动程序在公共(public) Maven 存储库中不可用,因此除非您有一个已添加该依赖项的私有(private) Maven 存储库,否则将其包含在您的 pom.xml 中将不会生成 jdbc 驱动程序在运行时可用。

如果您没有私有(private)/企业 Maven 存储库来添加 JDBC 驱动程序,我建议您在源代码中添加 jar 文件,并使用 filesystem 存储库来引用该文件。

您可以引用此答案,了解有关如何创建此类存储库的更多详细信息 Maven: add a dependency to a jar by relative path

关于java - 将 spring-boot 连接到 azure sql server 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45549648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com