如何: 著手進行 Microsoft JDBC

文章翻譯 文章翻譯
文章編號: 313100 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您,如何藉由使用 Microsoft SQL Server 2000 驅動程式的 JDBC 連線到 SQL Server 2000。


注意: Microsoft SQL Server 2000 驅動程式安裝指示的 JDBC,請參閱 Microsoft SQL Server 2000 驅動程式] 的 JDBC 安裝指南

為 JDBC 安裝 Microsoft SQL Server 2000 驅動程式之後您可以從連線您的程式到您的資料庫有兩種方式: 使用連接 URL 或 JNDI 資料來源。本文將告訴您如何設定及使用連接 URL 測試您的資料庫連接。

連線到資料庫的一種方法是藉由 JDBC 驅動程式管理員] 透過使用 getConnection 方法 DriverManager 類別。使用此方法的最簡單的方式採用包含一個 URL、 使用者名稱和密碼的字串參數。本文中的下列章節會說明如何載入 JDBC JDBC 程式從 Microsoft SQL Server 2000 驅動程式。

若要設定 CLASSPATH 變數

JDBC.jar 檔案 Microsoft SQL Server 2000 的驅動程式必須列在 CLASSPATH 變數中。CLASSPATH 變數是搜尋字串,Java 虛擬機器 (JVM) 會使用來找出您的電腦上的 JDBC 驅動程式。如果驅動程式不會列在 CLASSPATH 變數,您收到下列錯誤訊息,當您嘗試載入驅動程式:
java.lang.ClassNotFoundException: com/Microsoft/jdbc/sqlserver/SQLServerDriver
設定您的系統 CLASSPATH 變數?包含下列項目:
  • \ Your installation path \Lib\Msbase.jar
  • \ Your installation path \Lib\Msutil.jar
  • \ Your installation path \Lib\Mssqlserver.jar
這是已設定的 CLASSPATH 變數的範例:
CLASSPATH =; JDBC\lib\msutil.jar;c:\program files\Microsoft JDBC\lib\mssqlserver.jar 的 SQL Server 2000 驅動程式的 JDBC\lib\msbase.jar;c:\program files\Microsoft SQL Server 2000 驅動程式的 c:\program files\Microsoft SQL Server 2000 驅動程式

若要註冊驅動程式

JDBC 驅動程式管理員註冊驅動程式會指示要載入哪一個驅動程式。當您載入驅動程式是利用 class.forName 函式時,您必須指定驅動程式的名稱。這是 Microsoft SQL Server 2000 驅動程式] 的 JDBC 驅動程式的名稱:
com.microsoft.jdbc.sqlserver.SQLServerDriver
下列範例程式碼會示範如何註冊驅動程式:
Driver d = (Driver)Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
				

要傳遞連線 URL

您必須傳遞您的資料庫連線資訊的連線 URL 形式。這是 Microsoft SQL Server 2000 驅動程式] 的 JDBC 是範本 URL。取代為您的資料庫值:
jdbc:microsoft:sqlserver: / / servername:1433
下列範例程式碼會示範如何指定連線 URL:
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433", "userName", "password");
				
伺服器的名稱值可以是 IP 位址或主機名稱 (假設您的網路會將主機名稱解析為 IP 位址)。您可以藉由攻擊主機名稱,並確認您收到具有正確的 IP 位址回覆測試。

伺服器名稱後的數值是資料庫正在接聽的連接埠號碼。本文稍早所列的值是範例預設值。請務必替代您資料庫使用的連接埠號碼。

完整的連線 URL 參數清單,如 JDBC HTML 說明,請參閱 Microsoft SQL Server 2000 驅動程式,或請參閱 線上手冊。請參閱 < 連接字串屬性 > 一節。

若要測試連接的範例程式碼

下列的範例程式碼嘗試連線到資料庫,並顯示資料庫名稱]、 [版本] 和 [可用的類別目錄。以您的伺服器的值取代伺服器內容:
import java.*;
public class Connect{
     private java.sql.Connection  con = null;
     private final String url = "jdbc:microsoft:sqlserver://";
     private final String serverName= "localhost";
     private final String portNumber = "1433";
     private final String databaseName= "pubs";
     private final String userName = "user";
     private final String password = "password";
     // Informs the driver to use server a side-cursor, 
     // which permits more than one active statement 
     // on a connection.
     private final String selectMethod = "cursor"; 
     
     // Constructor
     public Connect(){}
     
     private String getConnectionUrl(){
          return url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";";
     }
     
     private java.sql.Connection getConnection(){
          try{
               Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
               con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
               if(con!=null) System.out.println("Connection Successful!");
          }catch(Exception e){
               e.printStackTrace();
               System.out.println("Error Trace in getConnection() : " + e.getMessage());
         }
          return con;
      }

     /*
          Display the driver properties, database details 
     */ 

     public void displayDbProperties(){
          java.sql.DatabaseMetaData dm = null;
          java.sql.ResultSet rs = null;
          try{
               con= this.getConnection();
               if(con!=null){
                    dm = con.getMetaData();
                    System.out.println("Driver Information");
                    System.out.println("\tDriver Name: "+ dm.getDriverName());
                    System.out.println("\tDriver Version: "+ dm.getDriverVersion ());
                    System.out.println("\nDatabase Information ");
                    System.out.println("\tDatabase Name: "+ dm.getDatabaseProductName());
                    System.out.println("\tDatabase Version: "+ dm.getDatabaseProductVersion());
                    System.out.println("Avalilable Catalogs ");
                    rs = dm.getCatalogs();
                    while(rs.next()){
                         System.out.println("\tcatalog: "+ rs.getString(1));
                    } 
                    rs.close();
                    rs = null;
                    closeConnection();
               }else System.out.println("Error: No active Connection");
          }catch(Exception e){
               e.printStackTrace();
          }
          dm=null;
     }     
     
     private void closeConnection(){
          try{
               if(con!=null)
                    con.close();
               con=null;
          }catch(Exception e){
               e.printStackTrace();
          }
     }
     public static void main(String[] args) throws Exception
       {
          Connect myDbTest = new Connect();
          myDbTest.displayDbProperties();
       }
}

				
如果這個程式碼是成功,而輸出則是類似下列:
Connection Successful!
Driver Information
        Driver Name: SQLServer
        Driver Version: 2.2.0022

Database Information
        Database Name: Microsoft SQL Server
        Database Version: Microsoft SQL Server  2000 - 8.00.384 (Intel X86)
        May 23 2001 00:02:52
        Copyright (c) 1988-2000 Microsoft Corporation
        Desktop Engine on Windows NT 5.1 (Build 2600: )

Avalilable Catalogs
        catalog: master
        catalog: msdb
        catalog: pubs
        catalog: tempdb
					

基本連線疑難排解

這些是當您嘗試連線至 SQL 伺服器時,可能會發生的常見錯誤訊息:
java.sql.SQLException: [Microsoft] [SQLServer 2000 對於 JDBC 的驅動程式] [SQLServer] 登入的使用者 '使用者' 失敗。受信任的 SQL Server 連線不相關原因:。
若 SQL Server 2000 的驗證模式] 設定為 [Windows 驗證模式,就會發生這個錯誤訊息。JDBC Microsoft SQL Server 2000 的驅動程式不支援使用 Windows NT 驗證來連線。您必須將 SQL Server 驗證模式設定為 [允許 Windows 驗證和 SQL Server 的帳戶驗證的混合模式。
java.sql.SQLException: [Microsoft] [SQLServer 2000 對於 JDBC 的驅動程式] 此版本的 JDBC 驅動程式只支援 Microsoft SQL Server 2000。您可以升級到 SQL Server 2000,或可能是找出另一個版本的驅動程式。
您嘗試連線到 SQL Server 版本早於 SQL Server 2000 發生此錯誤訊息。JDBC Microsoft SQL Server 2000 的驅動程式支援僅與 SQL Server 2000 的連線性。

屬性

文章編號: 313100 - 上次校閱: 2004年1月9日 - 版次: 3.3
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2000 Driver for JDBC
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 2000 Standard Edition
關鍵字:?
kbmt kbhowtomaster KB313100 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:313100
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com