Java连接SqlServer错误的完美解决方法

 更新时间:2023年04月04日 14:48:55   作者:shark-Gao  
我们在做Java或者C#连接数据库的时候,常常遇到连接SqlServer失败的问题,明明检查了好几遍代码没问题了,还是连接不上,下面这篇文章主要给大家介绍了关于Java连接SqlServer错误的完美解决方法,需要的朋友可以参考下

前言

最近公司换了新项目,这边也是进入了新一轮的开发,当项目经理把需求发给我之后我开始了需求的分析和coding。不一会我便开始拉去代码在本地开始跑程序。

问题发现

这次使用的是SqlServer数据库,之前并没有使用过,但是问题不大,我按照需求文档的步骤连接好SqlServer之后,启动SpringBoot项目,发现了一个报错,如下:

刚开始我以为是SqlServer连接问题呢,于是便去查看数据库,发现数据库一切正常,我首先第一时间问了我的同事,他们是否有这样的问题,发现他们并没有,于是我便开始了我最拿手的环节,面向百度编程。

开始解决

具体报错信息是这样,于是我便开始了百度

报错:ERROR c.a.d.p.DruidDataSource$CreateConnectionThread [Druid-ConnectionPool-Create-1218864105] create connection SQLException, url:jdbc:sqlserver://47.114.91.217:1433;DatabaseName=PileTestingSystem, errorCode 0, state 08S01

首先我进行了中文翻译

中文翻译错误:c.a.d.p.DruidDataSource$CreateConnectionThread[Druid-ConnectionPool-Create-1218864105]创建连接SQLException,url:jdbc:sqlserver://47.114.91.217:1433;DatabaseName=PileTestingSystem,错误代码0,状态08S01
com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法使用安全套接字层(SSL)加密建立到SQL Server的安全连接。错误:“客户端首选项[TLS12]不接受服务器选择的协议版本TLS10”。客户连接ID:c8434f3c-5f82-4cf2-b111-099e140f33d0
在com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2670)~[mssql-jdbc-6.4.0.jre8.jar:?]

这个错误主要就是驱动程序无法使用安全套(SSL)加密建立到SQL Server的安全连接

解决方法

最终在我的查询下,找到了两种解决方法,现在提供给大家

方法一

如果使用的是jdk1.8的话,先要找到自己安装JDK目录下的java.security文件并进行修改,
本人目录如下:D:\jdk\jre\lib\security下就会有这个java.security文件
具体的修改情况如下 :

打开文件后,注释掉这三行代码(也就是在这三行代码之前加 # ):

jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA,
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC,anon, NULL,
include jdk.disabled.namedCurves

然后重新启动项目,建立SQL Server的安全套连接就没有问题了。

图片如下:

没修改之前的java.security文件:

修改之后的java.security文件:

方法二

打开文件后,找到这三行代码:

jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA,
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC,anon, NULL,
include jdk.disabled.namedCurves

然后去掉:其中的3DES_EDE_CBC,字符。(图片如下)

然后重新启动项目,建立SQL Server的安全套连接就没有问题了。

没修改之前的java.security文件:

修改之后的java.security文件:

到这里问题就解决了,这里想告诉大家,遇到之前没有碰到过的新问题,不要慌,先追溯本源,看看到底是哪里出错了,思路一定要清晰,实在没有头绪的话可以百度,利用好搜索引擎,你一定可以的!!!

总结

到此这篇关于Java连接SqlServer错误的完美解决方法的文章就介绍到这了,更多相关Java连接SqlServer错误内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring配置shiro时自定义Realm中属性无法使用注解注入的解决办法

    Spring配置shiro时自定义Realm中属性无法使用注解注入的解决办法

    今天小编就为大家分享一篇关于Spring配置shiro时自定义Realm中属性无法使用注解注入的解决办法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Java8的Optional如何干掉空指针(示例详解)

    Java8的Optional如何干掉空指针(示例详解)

    这篇文章主要介绍了Java8的Optional如何干掉空指针,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Spring中WebClient的创建和使用详解

    Spring中WebClient的创建和使用详解

    这篇文章主要介绍了Spring中WebClient的创建和使用详解,在Spring5中,出现了Reactive响应式编程思想,并且为网络编程提供相关响应式编程的支持,如提供了WebFlux,它是Spring提供的异步非阻塞的响应式的网络框架,需要的朋友可以参考下
    2023-11-11
  • Spring中使用@Value注解注入属性文件中的值详解

    Spring中使用@Value注解注入属性文件中的值详解

    这篇文章主要介绍了Spring中使用@Value注解注入属性文件中的值详解,通过Spring的@Value注解可以将xml中关联的属性文件中的值注入变量中,这样就不需要通过创建Properties然后根据属性文件读取属性值了,需要的朋友可以参考下
    2023-12-12
  • Java设计模式之命令模式CommandPattern详解

    Java设计模式之命令模式CommandPattern详解

    这篇文章主要介绍了Java设计模式之命令模式CommandPattern详解,命令模式是把一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作,需要的朋友可以参考下
    2023-10-10
  • JSON反序列化Long变Integer或Double的问题及解决

    JSON反序列化Long变Integer或Double的问题及解决

    这篇文章主要介绍了JSON反序列化Long变Integer或Double的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Java实现终止线程池中正在运行的定时任务

    Java实现终止线程池中正在运行的定时任务

    本篇文章给大家分享了JAVA中实现终止线程池中正在运行的定时任务的具体步骤和方法,有需要的朋友跟着学习下。
    2018-05-05
  • IDEA配置MAVEN本地仓库的实现步骤

    IDEA配置MAVEN本地仓库的实现步骤

    本文主要介绍了IDEA配置MAVEN本地仓库的实现步骤,将详细介绍如何配置Maven环境变量,Maven配置文件,可以轻松地设置和配置MAVEN本地仓库,以便在IDEA中享受更高效的开发体验
    2023-08-08
  • SpringCloud 微服务数据权限控制的实现

    SpringCloud 微服务数据权限控制的实现

    这篇文章主要介绍的是权限控制的数据权限层面,意思是控制可访问数据资源的数量,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-11-11
  • Java多线程之ReentrantReadWriteLock源码解析

    Java多线程之ReentrantReadWriteLock源码解析

    这篇文章主要介绍了Java多线程之ReentrantReadWriteLock源码解析,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-05-05

最新评论