代碼使用 sun.jdbc.odbc.JdbcOdbcDriver,**JDK 8 起已移除 JDBC-ODBC 橋接器**,且 ODBC 驅動配置繁瑣、性能差、跨平台差。
Microsoft 官方 JDBC Driver for SQL Server:
com.microsoft.sqlserver:mssql-jdbc:12.4.2.jre11 (按 JDK 版本選擇)com.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://host:1433;databaseName=DB;encrypt=true;trustServerCertificate=trueimport java.sql.*;
public class DBOperation {
public static void main(String[] args) {
String url = "jdbc:sqlserver://localhost:1433;databaseName=DingBao;encrypt=true;trustServerCertificate=true";
String user = "sa";
String password = "woshishab";
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println("Connection success!");
conn.close();
} catch (Exception e) {
e.printStackTrace(); // 打印完整堆疊,別只印 "failure"
System.out.println("Connection failed: " + e.getMessage());
}
}
}
encrypt=true;trustServerCertificate=true 繞過證書驗證。instanceName=SQLEXPRESS 替代端口。integratedSecurity=true + 域賬號;SQL 認證用 user/password。**棄用 JdbcOdbcDriver,改用 com.microsoft.sqlserver.jdbc.SQLServerDriver**。加 Maven 依賴,配置正確 URL,打印完整異常堆疊,連接問題迎刃而解。