问题描述:项目需要连接SQLServer数据库
一开始使用的驱动依赖如下:
用的 微软家的
<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.2.1.jre11</version>
<scope>test</scope>
</dependency>
此驱动问题:本地跑的好好的,结果到了一台系统为 WindowsServer的服务器上,就报如下错误:
com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish
a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption
. Error: "SQL Server did not return a response. The connection has been closed.
ClientConnectionId:050db3c3-a59e-4072-a6e7-e91bae22310e".
网上各种调研,结论就两个:
1、使用高点的Java版本,我用的 1.8,没有问题
2、微软家的sqlserver驱动不好用,经常报各种错误,尝试更换 jtds驱动,maven依赖如下
<!-- https://mvnrepository.com/artifact/net.sourceforge.jtds/jtds -->
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.3.1</version>
</dependency>
使用jtds驱动,数据库配置需要做出如下更改:
sqlserver:
datasource:
url: jdbc:jtds:sqlserver://{ip}:{port};DatabaseName={}
driverClassName: net.sourceforge.jtds.jdbc.Driver
再重新启动,好了。
总结:我另外一个项目用的就是 微软家的SQLServer驱动,没有出现此问题。
感觉主要相关的点在: Java版本、SQLServer数据库版本、操作系统版本、驱动版本。需要结合环境多做尝试。