无法从 Spring 应用程序连接到 mssql 服务器

Posted

技术标签:

【中文标题】无法从 Spring 应用程序连接到 mssql 服务器【英文标题】:Not able to connect to mssql server from spring application 【发布时间】:2017-04-25 07:12:05 【问题描述】:

我有一个连接到 MS SQL Server 的 spring 应用程序, 我在 pom.xml 中添加了以下依赖项,

<!-- ms sqlserver dependency -->

        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>sqljdbc4</artifactId>
            <version>4.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.0.0.RELEASE</version>
        </dependency>

并为数据源提供以下 db 参数,

username: uname
password: pwd
url: jdbc:sqlserver://sample.pewtest.com;databaseName=CommonTest.TestDB
driver: com.microsoft.sqlserver.jdbc.SQLServerDriver

该应用程序使用 intellij 在我的本地环境中运行良好。但是当我构建 testApp.war 并在我的 tomcat 上部署应用程序时,我得到了以下异常,

获取所有样本时发生错误 org.springframework.jdbc.CannotGetJdbcConnectionException:无法获取 JDBC 连接;嵌套异常是 java.sql.SQLException:没有为 jdbc:sqlserver://sample.pewtest.com;databaseName=CommonTest.TestDB 找到合适的驱动程序

非常感谢您对此的任何帮助!

【问题讨论】:

确保你的 sqlserver jar 在你的类路径中 你在设置数据库名称吗?名称可能包含(点)CommonTest.TestDB 吗? 其实是我查询的一个视图 您的DataSource 设置如何? 我的 spring 配置中有一个 bean,可以处理这个 【参考方案1】:

我有一些建议给你

请检查您是否添加了 SQLServer 驱动程序 "Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");" 然后检查jar文件是否存在于“maven依赖库”中。还要检查jar文件的版本或尝试升级它。

【讨论】:

我们能否停止使用Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 来“加载不再需要的 jdbc 驱动程序”... JDBC4 驱动程序自己注册... 这样做甚至可能会引入类加载/强制转换问题。

以上是关于无法从 Spring 应用程序连接到 mssql 服务器的主要内容,如果未能解决你的问题,请参考以下文章

无法将 C# 应用程序连接到 MSSQL

无法从 MYSQL Workbench 6.3 CE 连接到 MS SQL 服务器 [重复]

无法使用 PHP 和 Codeigniter 从 PHP Azure 连接到 SQL Server Azure

Apache / WSGI 和 PHP 突然无法连接到 MSSQL 服务器——站点宕机

Android - 关于使用 jdbc 连接到 MSSQL 的 classnotfound

如果我们保持空闲一段时间,则在连接到 Azure MSSQL DB 时,Spring Boot 应用程序中的数据库连接将关闭