Java接入sqlserver的一些坑点记录

问题:

1.Java对应sqlserver的jdbc版本

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


  com.microsoft.sqlserver
  sqljdbc4
  4.0

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

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


  com.microsoft.sqlserver
  mssql-jdbc
  10.2.0.jre8

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,所以还真是有博主写错了,大家摘抄了他的博客,真是离离原上谱。
Java接入sqlserver的一些坑点记录_第1张图片

Java接入sqlserver的一些坑点记录_第2张图片

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

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

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

;encrypt=true;trustServerCertificate=true;

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

参考资料:

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

你可能感兴趣的:(Java修炼之旅,sqlserver,java,microsoft)