当前位置: 首页 > 知识库问答 >
问题:

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

楚天宇
2023-03-14

我有一个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.autocigure.orm.jpa.HibernatejpaAutoConfiguration”的bean时出错:通过构造函数参数0表示的未满足的依赖项;嵌套异常为org.springframework.beans.factory.beanCreationException:创建类路径资源[org/springframework/boot/autocigure/jdbc/datasourceConfiguration$tomcat.class]中定义的名为“data source”的bean时出错:通过工厂方法实例化bean失败;嵌套异常为org.springframework.beans.beanInstantiationException:无法实例化[org.apache.tomcat.jdbc.pool.datasource]:工厂方法“data source”引发异常;嵌套异常为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

共有1个答案

锺离韬
2023-03-14

你在哪里安装了那个驱动程序?SQL Server驱动程序在公共Maven存储库中不可用,因此除非您有一个添加了依赖关系的专用Maven存储库,否则将其包含在pom.xml中不会导致jdbc驱动程序在运行时可用。

如果您没有专用/公司maven存储库来添加JDBC驱动程序,我建议在源代码中添加jar文件,并使用filesystem存储库来引用该文件

关于如何创建这样一个存储库的更多细节,您可以参考这个答案Maven:通过相对路径向一个jar添加一个依赖项

 类似资料:
  • 我们正在尝试将涡轮机集成到我们的应用程序中。 我下载了1。o、 o样品发布(https://github.com/spring-cloud-samples/turbine/releases/tag/v1.0.0.RELEASE)建造并运行它。我没有连接到eureka(我拥有的其他服务与应用程序yml connect fine中的eureka连接设置相同)。 考虑到也许我应该尝试最新版本的turbi

  • 我正在尝试使用spring cloud AWS将AWS SQS集成到我的springboot应用程序中,但是不断出现这个错误(发布在下面),有人能帮忙吗? 这是我的档案。 org.springframework.beans.factory.beanCreationException:创建类路径资源[org/springframework/cloud/aws/messaging/config/ann

  • 我知道以前也有人问过类似的问题,但没有一个对我有帮助。 基本上,我需要=%AppData%+“当前EXE名称” 但问题在于不同的字符串类型和字符串拼接 简化代码:- 编译器命令:- 编译器错误:-

  • Oracle JKD 8和IBM JRE 7(出于测试目的,我为它们各配置了一个客户机) com.ibm.mq.allclient-9.1.0.0.jar javax.jms-api-2.0.1.jarspring-jms-4.3.7.release.jar spring-jms-4.3.7.release.jar MQ是请求/应答类型。 我已经设置了正确的证书和所有MQ属性,但由于某种原因,连接

  • 问题内容: 我正在尝试使用基本上通过以下方式构建的Java客户端使用SSL消耗IBM MQ(版本8.0.0.8): Oracle JKD 8和IBM JRE 7(出于测试目的,我每个都有一个客户端) com.ibm.mq.allclient-9.1.0.0.jar javax.jms-api-2.0.1.jarspring-jms-4.3.7.RELEASE.jar spring-jms-4.3.

  • 我正在尝试用android studio连接到我的Azure sql云数据库。运行代码时,我遇到了以下错误:“由于客户端TLS版本低于服务器允许的最低TLS版本,登录失败。”我已经尝试将azure的lts设置为1.0版本。 公共类MainActivity扩展AppCompatActivity { }