使用JDBC连接数据库
在使用如下连接方式时,会报错
package JDBC.com.SQLServer;
import java.sql.*;
public class Test_Sql {
public static void main(String[] args) {
try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("连接成功1");
}
catch(Exception e) {
System.out.println("连接失败1");
}
String connectionUrl =
"jdbc:sqlserver://127.0.0.1:1433;"
+ "databaseName=GJZC;"
+ "user=sa;"
+ "password=123456;";
//+ "trustServerCertificate=true";
Connection con;//处理与特定数据库的连接
try {
con = DriverManager.getConnection(connectionUrl);
System.out.println("连接成功2");
con.close();
}
catch(SQLException e) {
System.out.println("请输入正确的表名"+e);
System.out.println("连接失败2");
}
}
}
报错原因是com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”。 ClientConnectionId:244b069e-31fe-449a-aa16-6c10e1c4b684
原因是 新版的sqlserver jdbc驱动默认要求使用ssl链接来保证安全性
需要在配置文件中添加如下配置:trustServerCertificate=true