本文是记录本人,在实际开发项目中,遇到的一个兼容性问题;项目的运行环境是JDK6(公司项目,无法修改版本),而数据库确实sql server2016,之前还遇到sql server2000的,都是兼容性问题,很让人头疼。
正常来说,低版本sql server用sqljdbc.jar,高版本用sqljdbc4.jar(貌似从sql server2005版开始),配置驱动类是不一致的,具体细节,自行查找。
我的项目环境:JDK1.6,SQL SERVER2016
出现的问题描述:当JDK版本为1.6时,正常调用sqljdbc4.jar包的启动类,获取数据库连接时,会直接报错;而当JDK版本为1.7时,却没有问题;
以下是,JDK1.6+SQL SERVER2016+sqljdbc4.jar启动类,调用时,直接报错;
而JDK1.6+SQL SERVER2008+sqljdbc4.jar启动类,这样调用是没有问题的。
警告: TDSChannel ( ConnectionID:13 TransactionID:0x0000000000000000) SSL handshake failed: java.lang.RuntimeException: Could not generate DH keypair
com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误: java.lang.RuntimeException: Could not generate DH keypair。
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSChannel.throwSSLConne