首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

Java JDBC 連接 SQL Server 2008 常見錯誤與解決:驅動類別名稱與連接字串

     編輯:關於SqlServer

錯誤現象

java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=QQ

根本原因

JDBC 驅動版本不匹配:

  • 舊版驅動 (sqljdbc.jar 1.0/1.1):類別 com.microsoft.jdbc.sqlserver.SQLServerDriver,URL 前綴 jdbc:microsoft:sqlserver:
  • 新版驅動 (sqljdbc4.jar 2.0+,SQL Server 2005+ 專用):類別 com.microsoft.sqlserver.jdbc.SQLServerDriver,URL 前綴 jdbc:sqlserver: (無 microsoft)

正確程式碼範例

package com.qq.client.db;

import java.sql.Connection;
import java.sql.DriverManager;

public class ConnDB {
    private Connection conn = null;

    public Connection getConn() {
        try {
            // 1. 載入新版驅動類別 (SQL Server 2005/2008/2012/2014/2016/2019)
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            
            // 2. 正確連接字串 (無 microsoft)
            conn = DriverManager.getConnection(
                "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=QQ", 
                "sa", "sa");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }
}

關鍵差異對照

項目舊版驅動 (1.x)新版驅動 (2.0+)
Jar 檔案sqljdbc.jarsqljdbc4.jar (JDBC 4.0), sqljdbc41.jar (4.1), sqljdbc42.jar (4.2)
Driver 類別com.microsoft.jdbc.sqlserver.SQLServerDrivercom.microsoft.sqlserver.jdbc.SQLServerDriver
URL 協定jdbc:microsoft:sqlserver://jdbc:sqlserver://
支援版本SQL Server 2000SQL Server 2005+
JDK 需求JDK 1.4+JDK 1.5+ (4.0), 1.6+ (4.1), 1.7+ (4.2)

驅動下載與相依

  • 官方下載:Microsoft JDBC Driver for SQL Server (GitHub 或 Microsoft Download Center)
  • Maven 依賴:
    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <version>12.2.0.jre11</version>
    </dependency>
  • 將 jar 放入專案 classpath 或 WEB-INF/lib

進階連接字串參數

jdbc:sqlserver://host:1433;DatabaseName=MyDB;Encrypt=true;TrustServerCertificate=false;loginTimeout=30;
參數說明
Encrypt啟用 SSL 加密傳輸
TrustServerCertificate信任伺服器憑證 (開發/測試用)
loginTimeout登入逾時秒數
applicationName識別應用程式 (顯示於 sp_who2)
integratedSecurityWindows 整合驗證 (需 DLL 支援)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved