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.jar | sqljdbc4.jar (JDBC 4.0), sqljdbc41.jar (4.1), sqljdbc42.jar (4.2) |
| Driver 類別 | com.microsoft.jdbc.sqlserver.SQLServerDriver | com.microsoft.sqlserver.jdbc.SQLServerDriver |
| URL 協定 | jdbc:microsoft:sqlserver:// | jdbc:sqlserver:// |
| 支援版本 | SQL Server 2000 | SQL Server 2005+ |
| JDK 需求 | JDK 1.4+ | JDK 1.5+ (4.0), 1.6+ (4.1), 1.7+ (4.2) |
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>12.2.0.jre11</version>
</dependency>
jdbc:sqlserver://host:1433;DatabaseName=MyDB;Encrypt=true;TrustServerCertificate=false;loginTimeout=30;
| 參數 | 說明 |
|---|---|
| Encrypt | 啟用 SSL 加密傳輸 |
| TrustServerCertificate | 信任伺服器憑證 (開發/測試用) |
| loginTimeout | 登入逾時秒數 |
| applicationName | 識別應用程式 (顯示於 sp_who2) |
| integratedSecurity | Windows 整合驗證 (需 DLL 支援) |