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

JSP 連接 SQL Server 2000 完整避坑指南:驅動、SP3 補丁與權限設定

     編輯:關於SqlServer

前言

專案需求將資料庫從 MySQL 遷移至 SQL Server 2000,過程中踩了不少坑。整理此文供後人參考,少走彎路。

版本相容性提醒

SQL Server 2000 共有 7 個版本。實測在 Windows XP / Server 2003 上,唯有「個人開發版」可正常安裝不報錯,安裝前請確認版本與作業系統相容。

JDBC 驅動程式準備

  1. 至 Microsoft 官網下載最新 JDBC 驅動(三個 JAR 檔)。
  2. 放入 Web 應用程式的 WEB-INF/lib/ 目錄。

測試程式碼範例

import java.sql.*;

public class DBTest {
    Connection con;
    Statement sta;
    ResultSet rs;
    String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
    String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
    String user = "sa";
    String pwd = "sa";

    public DBTest() { init(); }

    public void init() {
        try {
            Class.forName(driver);
            System.out.println("driver is ok");
            con = DriverManager.getConnection(url, user, pwd);
            System.out.println("connection is ok");
            sta = con.createStatement();
            rs = sta.executeQuery("select * from room");
            while (rs.next()) System.out.println(rs.getInt("roomNum"));
        } catch (Exception e) { e.printStackTrace(); }
    }

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

常見錯誤與解決方案

錯誤一:Error establishing socket

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC] Error establishing socket

原因: 預設通訊埠 1433 未開放。
解決: 務必將 SQL Server 升級至 SP3(XP/2003 環境強制需求),SP3 會自動開啟通訊埠並修正相關問題。

錯誤二:物件名 'room' 無效

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]物件名 'room' 無效

原因: sa 為系統管理員帳號,雖可登入資料庫,但預設在使用者資料庫(如 test)中無任何權限。
解決: 在目標資料庫建立專用使用者(如 share):

  1. 企業管理員 → 目標資料庫 → 使用者 → 新增使用者。
  2. 驗證模式選 SQL Server 驗證。
  3. 預設資料庫選 目標資料庫(test)。
  4. 建立對應角色並授權。
  5. 修改程式碼使用新帳號密碼重測。

遠端連線補充設定

企業管理員 → 伺服器屬性 → 安全性 → 驗證模式選 SQL Server 和 Windows(混合模式)。

總結

  • SP3 補丁解決通訊埠與連線問題。
  • 資料庫使用者權限解決物件存取問題。
  • 剩下的就是純 SQL 操作邏輯了。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved