当前位置:   article > 正文

Java接入sqlserver的一些坑点记录_trustservercertificate=true

trustservercertificate=true

问题:

1.Java对应sqlserver的jdbc版本

jdbc对应的maven版本:网上搜索出来的资料有两种,一种是比较老版本的

<dependency>
  <groupId>com.microsoft.sqlserver</groupId>
  <artifactId>sqljdbc4</artifactId>
  <version>4.0</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

这个版本我去maven的主仓库查了下,更新时间是2016年3月份,所以最好就别用这个老版本的包了。

推荐使用:另外一种是船新版本的driver

<dependency>
  <groupId>com.microsoft.sqlserver</groupId>
  <artifactId>mssql-jdbc</artifactId>
  <version>10.2.0.jre8</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

2.Java对应sqlserver驱动名称

驱动名称:发现很多网上写的都是com.microsoft.jdbc.sqlserver.SQLServerDriver,申明这个名称在10.2.1版本是错的
正确的是com.microsoft.sqlserver.jdbc.SQLServerDriver。我在想这个错的名称是不是之前老的包里面是叫这个名字,还是说有人笔误写错了,
然后大家都是看的他的博客,也没有手动去连接一下,就抄过来,所以导致我看到的好几篇文档全都是错的。然后我下载了老版本的sqljdbc4,和mssql-jdbc的6.2.1的包,用
jd-gui反编译看了下,发现主程序一直是叫com.microsoft.sqlserver.jdbc.SQLServerDriver,所以还真是有博主写错了,大家摘抄了他的博客,真是离离原上谱。
在这里插入图片描述

在这里插入图片描述

我是先看了这篇文章
这个博主有点机智,根据idea对接的数据源里面的driver来看,驱动包应用程序名称和驱动包的版本,我就是用这个方式找到了接入sqlserver的驱动包的名称和版本。
感觉以后对接其他数据源也可以使用类似的方式,先用idea连接上对应的数据源,这样就可以知道对应的驱动包,驱动住程序的名称,和驱动包的版本了。

3.直接使用idea连接sqlserver连不上

账密,url什么的都是对的,在navicat里面也可以连上,但是放到idea里面就连不上了。
搜索资料后发现,应该是idea连接sqlserver的客户端和sqlserver的服务端的SSL/TLS的协议对不上导致的,之前我在mysql连接的时候,也偶尔出现过类似的问题,
有兴趣可以看看这篇文章。不过这次sqlserver的解决方式不同与mysql,需要在jdbcurl后面加上

;encrypt=true;trustServerCertificate=true;
  • 1

这个是我从stackoverflow上面看到的,原文链接在这里,Stack Overflow问题链接

参考资料:

1.idea查找数据源的方式
2.Stack Overflow问题链接

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/754051
推荐阅读
相关标签
  

闽ICP备14008679号