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

SQL Server 2000 與 JDBC 整合實戰:JDBC-ODBC 橋接器方案

     編輯:關於SqlServer

早期 Java 應用整合 SQL Server 2000 常採用 JDBC-ODBC 橋接器方案。本文記錄完整配置流程與範例代碼,供維護舊系統參考;新專案強烈建議改用 Microsoft 官方 JDBC 驅動或 jTDS。

環境需求

  • SQL Server 2000 SP3+
  • JDK 1.2+
  • JDBC-ODBC Bridge (JDK 內建 sun.jdbc.odbc.JdbcOdbcDriver,JDK 8 起移除)

配置步驟

  1. 建立測試資料庫/資料表:企業管理員建立 test 資料庫與 first_table。
  2. 建立系統 ODBC 資料來源 (系統 DSN):
    • 控制台 → 系統管理工具 → 資料來源 (ODBC) → 系統 DSN → 新增
    • 選擇 SQL Server 驅動 → 名稱: store_manager → 目標資料庫: test → 完成

Java 測試程式碼

import java.sql.*;

public class DbTest {
    private Connection con;
    private Statement sta;
    private ResultSet rs;

    private final String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
    private final String url = "jdbc:odbc:store_manager"; // 對應系統 DSN 名稱
    private final String user = "share";
    private final String pwd = "share";

    public DbTest() { init(); }

    private void init() {
        try {
            Class.forName(driver);
            System.out.println("Driver loaded OK");
            con = DriverManager.getConnection(url, user, pwd);
            System.out.println("Connection OK");
            sta = con.createStatement();
            rs = sta.executeQuery("SELECT * FROM room"); // 假設 room 表存在
            while (rs.next()) {
                System.out.println("roomNum: " + rs.getInt("roomNum"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            closeAll();
        }
    }

    private void closeAll() {
        try { if (rs != null) rs.close(); } catch (Exception ignore) {}
        try { if (sta != null) sta.close(); } catch (Exception ignore) {}
        try { if (con != null) con.close(); } catch (Exception ignore) {}
    }

    public static void main(String[] args) {
        new DbTest();
    }
}

關鍵點與遷移建議

  • 架構限制:JDBC-ODBC Bridge 需客戶端安裝 ODBC 驅動與 DSN,部署維護成本高,效能較差 (雙重轉換層)。
  • JDK 相容性:JDK 8 移除 Bridge,JDK 9+ 徹底不可用。舊系統升級 JDK 時必須遷移驅動。
  • 現代替代方案:
    • Microsoft JDBC Driver for SQL Server (官方、Type 4 純 Java、支援最新 SQL Server 功能)
    • jTDS (開源、輕量、基於 FreeTDS、廣泛用於開源專案)
  • 連線字串範例 (Microsoft 驅動):
    jdbc:sqlserver://localhost:1433;databaseName=test;user=share;password=share;
  • 連線池:生產環境必須配合 HikariCP / DBCP / Tomcat JDBC Pool 使用,避免頻繁建立連線開銷。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved