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

Java/JDBC 連接 SQL Server 2005/2008 完整配置指南:驅動下載、Classpath、URL 語法與 Eclipse 實戰

     編輯:關於SqlServer

準備工作

  1. 下載 Microsoft JDBC Driver for SQL Server(官網或 Maven Central):
    com.microsoft.sqlserver:mssql-jdbc:12.4.1.jre11(現代版本,支持 2008+、Java 8+)。
  2. 舊版本 sqljdbc_1.1.1501.101_chs.exe 僅用於維護 SQL 2000/2005 老項目。

Classpath 配置

  • 命令行:java -cp ".;path/to/mssql-jdbc-12.4.1.jre11.jar" MyApp
  • Eclipse:專案右鍵 → Build Path → Add External JARs → 選中 jar。
  • Maven/Gradle:直接聲明依賴,無需手動配置。

SQL Server 端網絡配置(必做)

  1. 配置管理器 → SQL Server 網絡配置 → MSSQLSERVER 協議 → 啟用 TCP/IP。
  2. 雙擊 TCP/IP → IP 地址 頁籤 → IPAll → TCP 端口 = 1433,清空動態端口。
  3. 重啟 SQL Server 服務生效。

JDBC URL 語法對比(關鍵差異)

版本驅動類名URL 格式
SQL Server 2000 (舊驅動)com.microsoft.jdbc.sqlserver.SQLServerDriverjdbc:microsoft:sqlserver://host:1433;DatabaseName=db
SQL Server 2005+ (新驅動)com.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://host:1433;DatabaseName=db

⚠️ 寫錯驅動類或 URL 前綴會導致 ClassNotFoundException 或 No suitable driver。

完整 Java 連接示例

import java.sql.*;

public class SqlServerConnTest {
    public static void main(String[] args) {
        String url = "jdbc:sqlserver://localhost:1433;DatabaseName=TestDB;encrypt=true;trustServerCertificate=true;";
        String user = "sa";
        String pwd = "YourStrongPassword";

        try (Connection conn = DriverManager.getConnection(url, user, pwd)) {
            System.out.println("連接成功!版本: " + conn.getMetaData().getDatabaseProductVersion());
            try (Statement stmt = conn.createStatement();
                 ResultSet rs = stmt.executeQuery("SELECT @@VERSION")) {
                if (rs.next()) System.out.println(rs.getString(1));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

常見連接失敗排查

錯誤原因解決
Connection refusedTCP/IP 未啟用/防火牆/端口錯誤配置管理器啟用 TCP/IP、開放 1433、檢查 IPAll 端口
Login failed for user混合模式未啟用/密碼錯誤/賬號鎖定SSMS→屬性→安全性→混合模式、重置密碼
The TCP/IP connection has failed實例名/端口/瀏覽器服務命名實例用 host\\instance 或指定端口、啟用 Browser 服務
SSL/TLS handshake failed驅動默認加密、憑證不信任URL 加 encrypt=true;trustServerCertificate=true (開發/測試)

連接池生產配置

使用 HikariCP:

HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:sqlserver://localhost:1433;DatabaseName=TestDB");
config.setUsername("app_user");
config.setPassword("pwd");
config.setMaximumPoolSize(20);
config.setMinimumIdle(5);
config.setConnectionTimeout(30000);
config.setIdleTimeout(600000);
config.setMaxLifetime(1800000);
config.addDataSourceProperty("cachePrepStmts", "true");
config.addDataSourceProperty("prepStmtCacheSize", "250");
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
DataSource ds = new HikariDataSource(config);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved