首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 連接 SQL Server:棄用 JDBC-ODBC 橋接,改用 Microsoft 官方驅動

     編輯:程式設計綜合問答

錯誤原因

代碼使用 sun.jdbc.odbc.JdbcOdbcDriver,**JDK 8 起已移除 JDBC-ODBC 橋接器**,且 ODBC 驅動配置繁瑣、性能差、跨平台差。

正確驅動

Microsoft 官方 JDBC Driver for SQL Server:

  • Maven 坐標:com.microsoft.sqlserver:mssql-jdbc:12.4.2.jre11 (按 JDK 版本選擇)
  • 驅動類:com.microsoft.sqlserver.jdbc.SQLServerDriver
  • 連接 URL:jdbc:sqlserver://host:1433;databaseName=DB;encrypt=true;trustServerCertificate=true

修正代碼

import 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());
        }
    }
}

常見坑點

  • 端口:SQL Server 默認 1433,確認防火牆/配置管理器啟用 TCP/IP。
  • 加密:新版驅動默認要求 SSL,開發環境可 encrypt=true;trustServerCertificate=true 繞過證書驗證。
  • 實例名:若為命名實例,URL 用 instanceName=SQLEXPRESS 替代端口。
  • 認證:Windows 認證用 integratedSecurity=true + 域賬號;SQL 認證用 user/password。

總結

**棄用 JdbcOdbcDriver,改用 com.microsoft.sqlserver.jdbc.SQLServerDriver**。加 Maven 依賴,配置正確 URL,打印完整異常堆疊,連接問題迎刃而解。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved